]> Raphaël G. Git Repositories - packbundle/blobdiff - Filter/CPackFilter.php
Fix undefined key error
[packbundle] / Filter / CPackFilter.php
index ca38c3be37033ade64bffe8fb8b0b29e69cf5ddf..f56bb959710ca851672c1529f211c1bdceae01fb 100644 (file)
@@ -1,42 +1,34 @@
-<?php
+<?php declare(strict_types=1);
 
-namespace Rapsys\PackBundle\Twig\Filter;
+/*
+ * This file is part of the Rapsys PackBundle package.
+ *
+ * (c) Raphaël Gertz <symfony@rapsys.eu>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Rapsys\PackBundle\Filter;
 
-use Rapsys\PackBundle\Twig\Filter\FilterInterface;
 use Twig\Error\Error;
+use Twig\Source;
 
+/**
+ * {@inheritdoc}
+ */
 class CPackFilter implements FilterInterface {
-       //Default bin
-       private $bin;
-
-       //Default compress type
-       private $compress;
-
-       //Twig template filename
-       private $fileName;
-
-       //Twig template line
-       private $line;
-
-       //Configure the object
-       //XXX: compress can be minify or pretty
-       public function __construct($fileName, $line, $bin = 'cpack', $compress = 'minify') {
-               //Set fileName
-               $this->fileName = $fileName;
-
-               //Set line
-               $this->line = $line;
-
-               //Set bin
-               $this->bin = $bin;
-
-               //Set compress
-               $this->compress = $compress;
-
+       /**
+        * Setup cpack filter
+        *
+        * @xxx compress can be minify or pretty
+        */
+       public function __construct(protected Source $fileName, protected int $line, protected string $bin = 'cpack', protected string $compress = 'minify') {
                //Deal with compress
                if (!empty($this->compress)) {
                        //Append minify parameter
                        if ($this->compress == 'minify') {
+                               //TODO: protect binary call by converting bin to array ?
                                $this->bin .= ' --minify';
                        //Unknown compress type
                        //XXX: default compression is pretty
@@ -47,7 +39,10 @@ class CPackFilter implements FilterInterface {
                }
        }
 
-       public function process($content) {
+       /**
+        * {@inheritdoc}
+        */
+       public function process(string $content): string {
                //Create descriptors
                $descriptorSpec = array(
                        0 => array('pipe', 'r'),
@@ -58,7 +53,7 @@ class CPackFilter implements FilterInterface {
                //Open process
                if (is_resource($proc = proc_open($this->bin, $descriptorSpec, $pipes))) {
                        //Set stderr as non blocking
-                       stream_set_blocking($pipes[2], 0);
+                       stream_set_blocking($pipes[2], false);
 
                        //Send content to stdin
                        fwrite($pipes[0], $content);