]> Raphaël G. Git Repositories - packbundle/commitdiff
Php 8.x constructor style
authorRaphaël Gertz <git@rapsys.eu>
Thu, 29 Feb 2024 13:04:02 +0000 (14:04 +0100)
committerRaphaël Gertz <git@rapsys.eu>
Thu, 29 Feb 2024 13:04:02 +0000 (14:04 +0100)
Add note about securing bin arguments

Filter/CPackFilter.php
Filter/JPackFilter.php

index 853e94acba213933eea52ae3c3bdc1c25b01ce7c..f56bb959710ca851672c1529f211c1bdceae01fb 100644 (file)
@@ -18,40 +18,17 @@ 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;
-
        /**
         * Setup cpack filter
         *
         * @xxx compress can be minify or pretty
         */
-       public function __construct(Source $fileName, int $line, string $bin = 'cpack', string $compress = 'minify') {
-               //Set fileName
-               $this->fileName = $fileName;
-
-               //Set line
-               $this->line = $line;
-
-               //Set bin
-               $this->bin = $bin;
-
-               //Set compress
-               $this->compress = $compress;
-
+       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
index 6715596e9e5713c4606b6e6162e38d0384ffefb4..9d758e4ff9f0c960af8c4631f6e6c3ef6e022873 100644 (file)
@@ -18,46 +18,25 @@ use Twig\Source;
  * {@inheritdoc}
  */
 class JPackFilter implements FilterInterface {
-       //Default bin
-       private $bin;
-
-       //Default compress type
-       private $compress;
-
-       //Twig template filename
-       private $fileName;
-
-       //Twig template line
-       private $line;
-
        /**
         * Setup jpack filter
         *
         * @xxx compress can be clean, shrink, obfuscate or best
         */
-       public function __construct(Source $fileName, int $line, string $bin = 'jpack', string $compress = 'best') {
-               //Set fileName
-               $this->fileName = $fileName;
-
-               //Set line
-               $this->line = $line;
-
-               //Set bin
-               $this->bin = $bin;
-
-               //Set compress
-               $this->compress = $compress;
-
+       public function __construct(protected Source $fileName, protected int $line, protected string $bin = 'jpack', protected string $compress = 'best') {
                //Deal with compress
                if (!empty($this->compress)) {
                        //Append clean parameter
                        if ($this->compress == 'clean') {
+                               //TODO: protect binary call by converting bin to array ?
                                $this->bin .= ' --clean';
                        //Append shrink parameter
                        } elseif ($this->compress == 'shrink') {
+                               //TODO: protect binary call by converting bin to array ?
                                $this->bin .= ' --shrink';
                        //Append obfuscate parameter
                        } elseif ($this->compress == 'obfuscate') {
+                               //TODO: protect binary call by converting bin to array ?
                                $this->bin .= ' --obfuscate';
                        //Unknown compress type
                        //XXX: default compression is best