diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e68daf1..0ce56d4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - php: ['8.0', '8.1', '8.2', '8.3'] + php: ['8.0', '8.1', '8.2', '8.3', '8.4', '8.5'] name: PHP ${{ matrix.php }} Test on ${{ matrix.os }} steps: - name: Checkout diff --git a/src/UrlBuilder.php b/src/UrlBuilder.php index bf5c3dc..f2681e6 100644 --- a/src/UrlBuilder.php +++ b/src/UrlBuilder.php @@ -96,8 +96,10 @@ public function url(string $src, ?string $extension = null): string { $format = $extension ? new ImageFormat($extension) : null; - $opt = implode('/', $this->options); - $path = sprintf('/%s/%s', $opt, $this->source($src, $format)); + $path = '/' . implode('/', [ + ...$this->options, + $this->source($src, $format), + ]); return sprintf('/%s%s', $this->signature($path), $path); } diff --git a/tests/UrlBuilderTest.php b/tests/UrlBuilderTest.php index 3db2a41..0eb9da9 100644 --- a/tests/UrlBuilderTest.php +++ b/tests/UrlBuilderTest.php @@ -114,6 +114,13 @@ public function signedData(): array 'plain' => '/0c-LLep4C-7PBda91FC_d5nEJpyyGH1qzNuifVFG32k/w:300/h:400/rt:fit/plain/http://example.com/image.jpg', 'encoded' => '/0pEYejprWvTcn8ZeJzbHU91zCGFpWjOHMaWhY57aISs/w:300/h:400/rt:fit/aHR0cDovL2V4YW1w/bGUuY29tL2ltYWdl/LmpwZw.jpg', ], + [ + 'src' => 'local:///logos/evil_martians.png', + 'format' => 'jpg', + 'options' => [], + 'plain' => '/ULisISQ1rO57bD0OFBi0sQQjngiG5hLM1G8lZNrmFnU/plain/local:///logos/evil_martians.png@jpg', + 'encoded' => '/UXBqIs6HQ2FlcNLEcx5V0OGfuujgcBZynk0r500gf7A/bG9jYWw6Ly8vbG9n/b3MvZXZpbF9tYXJ0/aWFucy5wbmc.jpg', + ], ]; }