class Compiler implements ShouldQueue, ShouldBeUnique, CompilerInterface
{
+ use FluidbookCompiler;
+
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
use Links;
use Styles;
- /** @var VirtualDirectory */
- protected $vdir;
+
/**
* @var string
*/
protected $out;
- /**
- * @var Data
- */
- public $config;
+
/**
* @var Source[]
*/
protected $pages = [];
- /**
- * @var string
- */
- public $wdir = '';
+
/**
* @var string
}
}
- public function getVirtualDirectory() : VirtualDirectory
- {
- return $this->vdir;
- }
-
/**
* Execute the job.
start_measure('Compile fluidbook');
if ($this->wdir === '') {
- $this->wdir = storage_path('fluidbook/working/');
- Files::mkdir($this->wdir);
+ $this->wdir = Files::mkdir(storage_path('fluidbook/working'));
}
$this->vdir = new VirtualDirectory($this->out);
// TODO: Implement addContentLock() method.
}
- public function getSetting($key, $default = null)
- {
- return $this->config->get($key, $default);
- }
- public function setSetting($key, $value)
- {
- $this->config->set($key, $value);
- }
}
* @return VirtualDirectory
*/
public function getVirtualDirectory(): VirtualDirectory;
+
+ public function getWorkingDir(): string;
+
+ public function setWorkingDir(string $wdir);
}
--- /dev/null
+<?php
+
+namespace Fluidbook\Tools\Compiler;
+
+use Cubist\Util\Files\VirtualDirectory;
+
+trait FluidbookCompiler
+{
+ /** @var VirtualDirectory */
+ protected $vdir;
+
+ /**
+ * @var string
+ */
+ public $wdir = '';
+
+ /**
+ * @return VirtualDirectory
+ */
+ public function getVirtualDirectory(): VirtualDirectory
+ {
+ return $this->vdir;
+ }
+
+ /**
+ * @param VirtualDirectory $vdir
+ */
+ public function setVirtualDirectory(VirtualDirectory $vdir): void
+ {
+ $this->vdir = $vdir;
+ }
+
+ public function getWorkingDir(): string
+ {
+ return $this->wdir;
+ }
+
+ public function setWorkingDir(string $wdir)
+ {
+ $this->wdir = $wdir;
+ }
+
+ public function working_path($path = '')
+ {
+ $res = $this->getWorkingDir();
+ return $path ? $res . '/' . $path : $res;
+ }
+
+ public function getSetting($key, $default = null)
+ {
+ return $this->config->get($key, $default);
+ }
+
+ public function setSetting($key, $value)
+ {
+ $this->config->set($key, $value);
+ }
+}
{
$pdf = $this->compiler->getSetting('downloadPortionPDF', '');
if ($pdf !== '') {
- $pdf = $this->compiler->wdir . '/' . $pdf;
+ $pdf = $this->compiler->getWorkingDir() . '/' . $pdf;
}
$res = [