diff --git a/app/modules/web/Controllers/Resource/CssController.php b/app/modules/web/Controllers/Resource/CssController.php index ef015dd0..9e69d02a 100644 --- a/app/modules/web/Controllers/Resource/CssController.php +++ b/app/modules/web/Controllers/Resource/CssController.php @@ -24,6 +24,7 @@ namespace SP\Modules\Web\Controllers\Resource; +use SP\Http\Request as HttpRequest; use SP\Infrastructure\File\FileHandler; use SP\Util\FileUtil; @@ -50,9 +51,9 @@ final class CssController extends ResourceBase $base = $this->request->analyzeString('b'); if ($file && $base) { - $files = $this->buildFiles(urldecode($base), explode(',', urldecode($file))); + $files = $this->buildFiles(urldecode($base), explode(',', urldecode($file)), true); - $this->minify->builder(true) + $this->minify->builder() ->addFiles($files) ->getMinified(); } else { @@ -68,10 +69,13 @@ final class CssController extends ResourceBase /** * @param string $base * @param array $files + * @param bool $insecure * @return FileHandler[] */ - private function buildFiles(string $base, array $files): array + private function buildFiles(string $base, array $files, bool $insecure = false): array { + $base = $insecure ? HttpRequest::getSecureAppPath($base) : $base; + return array_map( fn(string $file) => new FileHandler(FileUtil::buildPath($base, $file)), $files diff --git a/app/modules/web/Controllers/Resource/JsController.php b/app/modules/web/Controllers/Resource/JsController.php index dda6113d..0a5cf072 100644 --- a/app/modules/web/Controllers/Resource/JsController.php +++ b/app/modules/web/Controllers/Resource/JsController.php @@ -24,6 +24,7 @@ namespace SP\Modules\Web\Controllers\Resource; +use SP\Http\Request as HttpRequest; use SP\Infrastructure\File\FileHandler; use SP\Util\FileUtil; @@ -67,9 +68,9 @@ final class JsController extends ResourceBase $base = $this->request->analyzeString('b'); if ($file && $base) { - $files = $this->buildFiles(urldecode($base), explode(',', urldecode($file))); + $files = $this->buildFiles(urldecode($base), explode(',', urldecode($file)), true); - $this->minify->builder(true) + $this->minify->builder() ->addFiles($files) ->getMinified(); } else { @@ -95,10 +96,13 @@ final class JsController extends ResourceBase /** * @param string $base * @param array $files + * @param bool $insecure * @return FileHandler[] */ - private function buildFiles(string $base, array $files): array + private function buildFiles(string $base, array $files, bool $insecure = false): array { + $base = $insecure ? HttpRequest::getSecureAppPath($base) : $base; + return array_map( fn(string $file) => new FileHandler(FileUtil::buildPath($base, $file)), $files diff --git a/lib/SP/Domain/Html/MinifyFile.php b/lib/SP/Domain/Html/MinifyFile.php index 38384e14..e06ff3cb 100644 --- a/lib/SP/Domain/Html/MinifyFile.php +++ b/lib/SP/Domain/Html/MinifyFile.php @@ -35,8 +35,7 @@ final class MinifyFile { public function __construct( private readonly FileHandlerInterface $fileHandler, - private readonly bool $minify, - private readonly bool $insecure + private readonly bool $minify ) { } @@ -55,13 +54,6 @@ final class MinifyFile return HttpRequest::getSecureAppFile($this->fileHandler->getName(), $this->fileHandler->getBase()); } - public function getBase(): string - { - return $this->insecure ? HttpRequest::getSecureAppPath( - $this->fileHandler->getBase() - ) : $this->fileHandler->getBase(); - } - /** * @throws FileException */ diff --git a/lib/SP/Domain/Html/MinifyInterface.php b/lib/SP/Domain/Html/MinifyInterface.php index 8cb3bd9a..931999dd 100644 --- a/lib/SP/Domain/Html/MinifyInterface.php +++ b/lib/SP/Domain/Html/MinifyInterface.php @@ -55,9 +55,5 @@ interface MinifyInterface */ public function addFiles(array $files, bool $minify = true): MinifyInterface; - /** - * @param bool $insecure Whether the $base path is insecure - * @return MinifyInterface - */ - public function builder(bool $insecure = false): MinifyInterface; + public function builder(): MinifyInterface; } diff --git a/lib/SP/Html/Minify.php b/lib/SP/Html/Minify.php index 799e04ed..9c4b1ec7 100644 --- a/lib/SP/Html/Minify.php +++ b/lib/SP/Html/Minify.php @@ -164,11 +164,8 @@ abstract class Minify implements MinifyInterface return $this; } - public function builder(bool $insecure = false): MinifyInterface + public function builder(): MinifyInterface { - $clone = clone $this; - $clone->insecure = $insecure; - - return $clone; + return clone $this; } } diff --git a/tests/SP/Html/MinifyCssTest.php b/tests/SP/Html/MinifyCssTest.php index 5a4d640e..ffd2ea2f 100644 --- a/tests/SP/Html/MinifyCssTest.php +++ b/tests/SP/Html/MinifyCssTest.php @@ -234,13 +234,6 @@ class MinifyCssTest extends UnitaryTestCase self::assertNotEquals(spl_object_id($this->minifyCss), spl_object_id($out)); } - public function testBuilderWithInsecure() - { - $out = $this->minifyCss->builder(true); - - self::assertNotEquals(spl_object_id($this->minifyCss), spl_object_id($out)); - } - /** * @throws Exception * @throws FileException