]> _ Git - fluidbook_tools.git/commitdiff
wip #5408 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 22 Aug 2022 15:28:07 +0000 (17:28 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 22 Aug 2022 15:28:07 +0000 (17:28 +0200)
src/Compiler/Compiler.php
src/Compiler/CompilerInterface.php
src/Compiler/FluidbookCompiler.php [new file with mode: 0644]
src/Links/DownloadPortionLink.php

index 7d37b8c413126bea68debc85f6f314cb0cac714d..38c8cb7e176745bb60acde53ba561863b580c7cd 100644 (file)
@@ -22,23 +22,21 @@ use JsonException;
 
 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[]
@@ -50,10 +48,7 @@ class Compiler implements ShouldQueue, ShouldBeUnique, CompilerInterface
      */
     protected $pages = [];
 
-    /**
-     * @var string
-     */
-    public $wdir = '';
+
 
     /**
      * @var string
@@ -75,11 +70,6 @@ class Compiler implements ShouldQueue, ShouldBeUnique, CompilerInterface
         }
     }
 
-    public function getVirtualDirectory() : VirtualDirectory
-    {
-        return $this->vdir;
-    }
-
 
     /**
      * Execute the job.
@@ -177,8 +167,7 @@ class Compiler implements ShouldQueue, ShouldBeUnique, CompilerInterface
         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);
@@ -364,13 +353,5 @@ class Compiler implements ShouldQueue, ShouldBeUnique, CompilerInterface
         // 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);
-    }
 }
index ae4a3c3dc6b6006d527dee373d9f33dbc7ad1b60..e8f3edb729e1a8e2fde84734d3ea5059794fec21 100644 (file)
@@ -24,4 +24,8 @@ interface CompilerInterface
      * @return VirtualDirectory
      */
     public function getVirtualDirectory(): VirtualDirectory;
+
+    public function getWorkingDir(): string;
+    
+    public function setWorkingDir(string $wdir);
 }
diff --git a/src/Compiler/FluidbookCompiler.php b/src/Compiler/FluidbookCompiler.php
new file mode 100644 (file)
index 0000000..d2fab22
--- /dev/null
@@ -0,0 +1,58 @@
+<?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);
+    }
+}
index c072e0712e428296d16846a0546a5597ff86e9e2..2268b2d9695e4dc64a6bf6a03e34c6d1c7814691 100644 (file)
@@ -17,7 +17,7 @@ class DownloadPortionLink extends FileLink
     {
         $pdf = $this->compiler->getSetting('downloadPortionPDF', '');
         if ($pdf !== '') {
-            $pdf = $this->compiler->wdir . '/' . $pdf;
+            $pdf = $this->compiler->getWorkingDir() . '/' . $pdf;
         }
 
         $res = [