From 8e5b1735ba1d617c76e7a8f5bf5ed4451f5ec96c Mon Sep 17 00:00:00 2001 From: David Buchmann Date: Fri, 17 Jun 2022 14:28:23 +0200 Subject: [PATCH] remove obsolete BC code and cleanups --- src/Binary/Locator/FileSystemLocator.php | 2 +- src/Config/FilterFactoryCollection.php | 2 +- .../Factory/Resolver/AwsS3ResolverFactory.php | 2 +- .../Config/Filter/Argument/PointFactory.php | 2 +- .../Config/Filter/Argument/SizeFactory.php | 2 +- .../Config/Filter/DownscaleFactory.php | 2 +- src/Factory/Config/Filter/RotateFactory.php | 2 +- src/Factory/Config/Filter/ScaleFactory.php | 2 +- src/Factory/Config/Filter/UpscaleFactory.php | 2 +- .../Config/Filter/WatermarkFactory.php | 8 ++------ src/Imagine/Cache/CacheManager.php | 14 +++++-------- src/Imagine/Data/DataManager.php | 2 +- src/Imagine/Filter/FilterManager.php | 10 +++++----- .../Filter/Loader/BackgroundFilterLoader.php | 16 +++++++-------- .../Filter/Loader/CropFilterLoader.php | 11 +++++----- .../Filter/Loader/PasteFilterLoader.php | 4 ++-- .../Filter/Loader/ResampleFilterLoader.php | 2 +- .../Filter/Loader/ResizeFilterLoader.php | 4 ++-- .../Filter/Loader/RotateFilterLoader.php | 2 +- .../Filter/Loader/ScaleFilterLoader.php | 14 ++++++------- .../Filter/Loader/ThumbnailFilterLoader.php | 6 +++--- .../PostProcessor/AbstractPostProcessor.php | 8 ++++---- .../PostProcessor/OptiPngPostProcessor.php | 20 +++++++++---------- .../PostProcessor/PngquantPostProcessor.php | 6 +++--- 24 files changed, 66 insertions(+), 79 deletions(-) diff --git a/src/Binary/Locator/FileSystemLocator.php b/src/Binary/Locator/FileSystemLocator.php index 31491ae76..c1a2cd1d8 100644 --- a/src/Binary/Locator/FileSystemLocator.php +++ b/src/Binary/Locator/FileSystemLocator.php @@ -69,7 +69,7 @@ private function locateUsingRootPathsSearch(string $path): ?string private function locateUsingRootPlaceholder(string $path): ?string { - if (0 !== mb_strpos($path, '@') || 1 !== preg_match('{^@(?[^:]+):(?.+)$}', $path, $match)) { + if (!str_starts_with($path, '@') || 1 !== preg_match('{^@(?[^:]+):(?.+)$}', $path, $match)) { return null; } diff --git a/src/Config/FilterFactoryCollection.php b/src/Config/FilterFactoryCollection.php index ea4778770..4a31c9fb2 100644 --- a/src/Config/FilterFactoryCollection.php +++ b/src/Config/FilterFactoryCollection.php @@ -33,7 +33,7 @@ public function __construct(FilterFactoryInterface ...$filterFactories) */ public function getFilterFactoryByName(string $name): FilterFactoryInterface { - if (!isset($this->filterFactories[$name])) { + if (!\array_key_exists($name, $this->filterFactories)) { throw new NotFoundException(sprintf("Filter factory with name '%s' was not found.", $name)); } diff --git a/src/DependencyInjection/Factory/Resolver/AwsS3ResolverFactory.php b/src/DependencyInjection/Factory/Resolver/AwsS3ResolverFactory.php index 3c300ab4d..9d62353a2 100644 --- a/src/DependencyInjection/Factory/Resolver/AwsS3ResolverFactory.php +++ b/src/DependencyInjection/Factory/Resolver/AwsS3ResolverFactory.php @@ -37,7 +37,7 @@ public function create(ContainerBuilder $container, string $name, array $config) $resolverId = 'liip_imagine.cache.resolver.'.$name; $container->setDefinition($resolverId, $resolverDefinition); - if (isset($config['cache_prefix'])) { + if (\array_key_exists('cache_prefix', $config)) { $resolverDefinition->addMethodCall('setCachePrefix', [$config['cache_prefix']]); } diff --git a/src/Factory/Config/Filter/Argument/PointFactory.php b/src/Factory/Config/Filter/Argument/PointFactory.php index 6d82b9ae2..e412bcc73 100644 --- a/src/Factory/Config/Filter/Argument/PointFactory.php +++ b/src/Factory/Config/Filter/Argument/PointFactory.php @@ -28,7 +28,7 @@ public function create(int $x = null, int $y = null): Point public function createFromOptions(array $options, string $propertyName): Point { - if (!isset($options[$propertyName])) { + if (!\array_key_exists($propertyName, $options)) { return new Point(); } diff --git a/src/Factory/Config/Filter/Argument/SizeFactory.php b/src/Factory/Config/Filter/Argument/SizeFactory.php index fd65c793b..6b2294411 100644 --- a/src/Factory/Config/Filter/Argument/SizeFactory.php +++ b/src/Factory/Config/Filter/Argument/SizeFactory.php @@ -28,7 +28,7 @@ public function create(int $width = null, int $height = null): Size public function createFromOptions(array $options, string $propertyName = 'size'): Size { - if (!isset($options[$propertyName])) { + if (!\array_key_exists($propertyName, $options)) { return new Size(); } diff --git a/src/Factory/Config/Filter/DownscaleFactory.php b/src/Factory/Config/Filter/DownscaleFactory.php index c4ca8b105..e6ec72777 100644 --- a/src/Factory/Config/Filter/DownscaleFactory.php +++ b/src/Factory/Config/Filter/DownscaleFactory.php @@ -38,7 +38,7 @@ public function getName(): string public function create(array $options): FilterInterface { $max = $this->sizeFactory->createFromOptions($options, 'max'); - $by = isset($options['by']) ? (float) $options['by'] : null; + $by = \array_key_exists('by', $options) ? (float) $options['by'] : null; return new Downscale($max, $by); } diff --git a/src/Factory/Config/Filter/RotateFactory.php b/src/Factory/Config/Filter/RotateFactory.php index d3bd68874..ccced0710 100644 --- a/src/Factory/Config/Filter/RotateFactory.php +++ b/src/Factory/Config/Filter/RotateFactory.php @@ -29,7 +29,7 @@ public function getName(): string public function create(array $options): FilterInterface { - $angle = isset($options['angle']) ? (int) $options['angle'] : 0; + $angle = \array_key_exists('angle', $options) ? (int) $options['angle'] : 0; return new Rotate($angle); } diff --git a/src/Factory/Config/Filter/ScaleFactory.php b/src/Factory/Config/Filter/ScaleFactory.php index 6163946c8..d7cbc1925 100644 --- a/src/Factory/Config/Filter/ScaleFactory.php +++ b/src/Factory/Config/Filter/ScaleFactory.php @@ -38,7 +38,7 @@ public function getName(): string public function create(array $options): FilterInterface { $dimensions = $this->sizeFactory->createFromOptions($options, 'dim'); - $to = isset($options['to']) ? (float) $options['to'] : null; + $to = \array_key_exists('to', $options) ? (float) $options['to'] : null; return new Scale($dimensions, $to); } diff --git a/src/Factory/Config/Filter/UpscaleFactory.php b/src/Factory/Config/Filter/UpscaleFactory.php index 2218e379b..071a36dfa 100644 --- a/src/Factory/Config/Filter/UpscaleFactory.php +++ b/src/Factory/Config/Filter/UpscaleFactory.php @@ -38,7 +38,7 @@ public function getName(): string public function create(array $options): FilterInterface { $min = $this->sizeFactory->createFromOptions($options, 'min'); - $by = isset($options['by']) ? (float) $options['by'] : null; + $by = \array_key_exists('by', $options) ? (float) $options['by'] : null; return new Upscale($min, $by); } diff --git a/src/Factory/Config/Filter/WatermarkFactory.php b/src/Factory/Config/Filter/WatermarkFactory.php index eb0e02a1b..b7ab06b35 100644 --- a/src/Factory/Config/Filter/WatermarkFactory.php +++ b/src/Factory/Config/Filter/WatermarkFactory.php @@ -29,12 +29,8 @@ public function getName(): string public function create(array $options): FilterInterface { - $size = $options['size'] ?? null; - if (null !== $size) { - $size = (float) $size; - } - - $position = isset($options['position']) ? $options['position'] : 'center'; + $size = \array_key_exists('size', $options) ? (float) $options['size'] : null; + $position = $options['position'] ?? 'center'; return new Watermark($options['image'], $position, $size); } diff --git a/src/Imagine/Cache/CacheManager.php b/src/Imagine/Cache/CacheManager.php index 15e699d47..4a1da10a0 100644 --- a/src/Imagine/Cache/CacheManager.php +++ b/src/Imagine/Cache/CacheManager.php @@ -194,7 +194,7 @@ public function remove($paths = null, $filters = null): void foreach ($filters as $filter) { $resolver = $this->getResolver($filter, null); - $list = isset($mapping[$resolver]) ? $mapping[$resolver] : []; + $list = $mapping[$resolver] ?? []; $list[] = $filter; @@ -213,18 +213,14 @@ public function remove($paths = null, $filters = null): void * * @throws \OutOfBoundsException If neither a specific nor a default resolver is available */ - protected function getResolver(string $filter, ?string $resolver): ResolverInterface + protected function getResolver(string $filter, ?string $resolverName): ResolverInterface { - // BC - if (!$resolver) { + if (!$resolverName) { $config = $this->filterConfig->get($filter); - - $resolverName = empty($config['cache']) ? $this->defaultResolver : $config['cache']; - } else { - $resolverName = $resolver; + $resolverName = $config['cache'] ?? $this->defaultResolver; } - if (!isset($this->resolvers[$resolverName])) { + if (!\array_key_exists($resolverName, $this->resolvers)) { throw new \OutOfBoundsException(sprintf('Could not find resolver "%s" for "%s" filter type', $resolverName, $filter)); } diff --git a/src/Imagine/Data/DataManager.php b/src/Imagine/Data/DataManager.php index 9aa5d69a4..39bbd80fc 100644 --- a/src/Imagine/Data/DataManager.php +++ b/src/Imagine/Data/DataManager.php @@ -69,7 +69,7 @@ public function getLoader(string $filter): LoaderInterface $loaderName = empty($config['data_loader']) ? $this->defaultLoader : $config['data_loader']; - if (!isset($this->loaders[$loaderName])) { + if (!\array_key_exists($loaderName, $this->loaders)) { throw new \InvalidArgumentException(sprintf('Could not find data loader "%s" for "%s" filter type', $loaderName, $filter)); } diff --git a/src/Imagine/Filter/FilterManager.php b/src/Imagine/Filter/FilterManager.php index 347336c14..a7a5ac38d 100644 --- a/src/Imagine/Filter/FilterManager.php +++ b/src/Imagine/Filter/FilterManager.php @@ -132,13 +132,13 @@ private function exportConfiguredImageBinary(BinaryInterface $binary, ImageInter 'quality' => $config['quality'], ]; - if (isset($config['jpeg_quality'])) { + if (\array_key_exists('jpeg_quality', $config)) { $options['jpeg_quality'] = $config['jpeg_quality']; } - if (isset($config['png_compression_level'])) { + if (\array_key_exists('png_compression_level', $config)) { $options['png_compression_level'] = $config['png_compression_level']; } - if (isset($config['png_compression_filter'])) { + if (\array_key_exists('png_compression_filter', $config)) { $options['png_compression_filter'] = $config['png_compression_filter']; } @@ -171,7 +171,7 @@ private function exportConfiguredImageBinary(BinaryInterface $binary, ImageInter private function sanitizeFilters(array $filters): array { $sanitized = array_filter($filters, function (string $name): bool { - return isset($this->loaders[$name]); + return \array_key_exists($name, $this->loaders); }, ARRAY_FILTER_USE_KEY); if (\count($filters) !== \count($sanitized)) { @@ -184,7 +184,7 @@ private function sanitizeFilters(array $filters): array private function sanitizePostProcessors(array $processors): array { $sanitized = array_filter($processors, function (string $name): bool { - return isset($this->postProcessors[$name]); + return \array_key_exists($name, $this->postProcessors); }, ARRAY_FILTER_USE_KEY); if (\count($processors) !== \count($sanitized)) { diff --git a/src/Imagine/Filter/Loader/BackgroundFilterLoader.php b/src/Imagine/Filter/Loader/BackgroundFilterLoader.php index f67d16562..150f784fb 100644 --- a/src/Imagine/Filter/Loader/BackgroundFilterLoader.php +++ b/src/Imagine/Filter/Loader/BackgroundFilterLoader.php @@ -28,17 +28,17 @@ public function __construct(ImagineInterface $imagine) public function load(ImageInterface $image, array $options = []): ImageInterface { $background = $image->palette()->color( - isset($options['color']) ? $options['color'] : '#fff', - isset($options['transparency']) ? $options['transparency'] : null + $options['color'] ?? '#fff', + $options['transparency'] ?? null ); $topLeft = new Point(0, 0); $size = $image->getSize(); - if (isset($options['size'])) { - $width = isset($options['size'][0]) ? $options['size'][0] : null; - $height = isset($options['size'][1]) ? $options['size'][1] : null; + if (\array_key_exists('size', $options)) { + $width = $options['size'][0] ?? null; + $height = $options['size'][1] ?? null; - $position = isset($options['position']) ? $options['position'] : 'center'; + $position = $options['position'] ?? 'center'; switch ($position) { case 'topleft': $x = 0; @@ -92,8 +92,6 @@ public function load(ImageInterface $image, array $options = []): ImageInterface $topLeft = new Point($x, $y); } - $canvas = $this->imagine->create($size, $background); - - return $canvas->paste($image, $topLeft); + return $this->imagine->create($size, $background)->paste($image, $topLeft); } } diff --git a/src/Imagine/Filter/Loader/CropFilterLoader.php b/src/Imagine/Filter/Loader/CropFilterLoader.php index 071cbfe8a..896f56d17 100644 --- a/src/Imagine/Filter/Loader/CropFilterLoader.php +++ b/src/Imagine/Filter/Loader/CropFilterLoader.php @@ -20,15 +20,14 @@ class CropFilterLoader implements LoaderInterface { public function load(ImageInterface $image, array $options = []): ImageInterface { - $x = isset($options['start'][0]) ? $options['start'][0] : null; - $y = isset($options['start'][1]) ? $options['start'][1] : null; + $x = $options['start'][0] ?? null; + $y = $options['start'][1] ?? null; - $width = isset($options['size'][0]) ? $options['size'][0] : null; - $height = isset($options['size'][1]) ? $options['size'][1] : null; + $width = $options['size'][0] ?? null; + $height = $options['size'][1] ?? null; $filter = new Crop(new Point($x, $y), new Box($width, $height)); - $image = $filter->apply($image); - return $image; + return $filter->apply($image); } } diff --git a/src/Imagine/Filter/Loader/PasteFilterLoader.php b/src/Imagine/Filter/Loader/PasteFilterLoader.php index cce35a028..18f904101 100644 --- a/src/Imagine/Filter/Loader/PasteFilterLoader.php +++ b/src/Imagine/Filter/Loader/PasteFilterLoader.php @@ -32,8 +32,8 @@ public function __construct(ImagineInterface $imagine, string $projectDir) */ public function load(ImageInterface $image, array $options = []): ImageInterface { - $x = isset($options['start'][0]) ? $options['start'][0] : null; - $y = isset($options['start'][1]) ? $options['start'][1] : null; + $x = $options['start'][0] ?? null; + $y = $options['start'][1] ?? null; $destImage = $this->imagine->open($this->projectDir.'/'.$options['image']); diff --git a/src/Imagine/Filter/Loader/ResampleFilterLoader.php b/src/Imagine/Filter/Loader/ResampleFilterLoader.php index 449b08f10..17c59a71a 100644 --- a/src/Imagine/Filter/Loader/ResampleFilterLoader.php +++ b/src/Imagine/Filter/Loader/ResampleFilterLoader.php @@ -78,7 +78,7 @@ private function getImagineSaveOptions(array $options): array 'resolution-y' => $options['y'], ]; - if (isset($options['filter'])) { + if (\array_key_exists('filter', $options)) { $saveOptions['resampling-filter'] = $options['filter']; } diff --git a/src/Imagine/Filter/Loader/ResizeFilterLoader.php b/src/Imagine/Filter/Loader/ResizeFilterLoader.php index cf13b2ad8..7800e8f36 100644 --- a/src/Imagine/Filter/Loader/ResizeFilterLoader.php +++ b/src/Imagine/Filter/Loader/ResizeFilterLoader.php @@ -24,8 +24,8 @@ class ResizeFilterLoader implements LoaderInterface { public function load(ImageInterface $image, array $options = []): ImageInterface { - $width = isset($options['size'][0]) ? $options['size'][0] : null; - $height = isset($options['size'][1]) ? $options['size'][1] : null; + $width = $options['size'][0] ?? null; + $height = $options['size'][1] ?? null; $filter = new Resize(new Box($width, $height)); diff --git a/src/Imagine/Filter/Loader/RotateFilterLoader.php b/src/Imagine/Filter/Loader/RotateFilterLoader.php index 23ededb34..772d67778 100644 --- a/src/Imagine/Filter/Loader/RotateFilterLoader.php +++ b/src/Imagine/Filter/Loader/RotateFilterLoader.php @@ -22,7 +22,7 @@ class RotateFilterLoader implements LoaderInterface { public function load(ImageInterface $image, array $options = []): ImageInterface { - $angle = isset($options['angle']) ? (int) $options['angle'] : 0; + $angle = \array_key_exists('angle', $options) ? (int) $options['angle'] : 0; return 0 === $angle ? $image : $image->rotate($angle); } diff --git a/src/Imagine/Filter/Loader/ScaleFilterLoader.php b/src/Imagine/Filter/Loader/ScaleFilterLoader.php index f4dc940df..c2efae48f 100644 --- a/src/Imagine/Filter/Loader/ScaleFilterLoader.php +++ b/src/Imagine/Filter/Loader/ScaleFilterLoader.php @@ -37,21 +37,17 @@ public function __construct(string $dimensionKey = 'dim', string $ratioKey = 'to public function load(ImageInterface $image, array $options = []): ImageInterface { - if (!isset($options[$this->dimensionKey]) && !isset($options[$this->ratioKey])) { - throw new \InvalidArgumentException("Missing $this->dimensionKey or $this->ratioKey option."); - } - $size = $image->getSize(); $origWidth = $size->getWidth(); $origHeight = $size->getHeight(); $ratio = 1; - if (isset($options[$this->ratioKey])) { + if (\array_key_exists($this->ratioKey, $options)) { $ratio = $this->absoluteRatio ? $options[$this->ratioKey] : $this->calcAbsoluteRatio($options[$this->ratioKey]); - } elseif (isset($options[$this->dimensionKey])) { + } elseif (\array_key_exists($this->dimensionKey, $options)) { $size = $options[$this->dimensionKey]; - $width = isset($size[0]) ? $size[0] : null; - $height = isset($size[1]) ? $size[1] : null; + $width = $size[0] ?? null; + $height = $size[1] ?? null; $widthRatio = $width / $origWidth; $heightRatio = $height / $origHeight; @@ -61,6 +57,8 @@ public function load(ImageInterface $image, array $options = []): ImageInterface } else { $ratio = ('min' === $this->dimensionKey) ? max($widthRatio, $heightRatio) : min($widthRatio, $heightRatio); } + } else { + throw new \InvalidArgumentException("Missing $this->dimensionKey or $this->ratioKey option."); } if ($this->isImageProcessable($ratio)) { diff --git a/src/Imagine/Filter/Loader/ThumbnailFilterLoader.php b/src/Imagine/Filter/Loader/ThumbnailFilterLoader.php index ed81c1e3f..49b263555 100644 --- a/src/Imagine/Filter/Loader/ThumbnailFilterLoader.php +++ b/src/Imagine/Filter/Loader/ThumbnailFilterLoader.php @@ -25,14 +25,14 @@ public function load(ImageInterface $image, array $options = []): ImageInterface } if (!empty($options['filter'])) { - $filter = \constant('Imagine\Image\ImageInterface::FILTER_'.mb_strtoupper($options['filter'])); + $filter = \constant(ImageInterface::class.'::FILTER_'.mb_strtoupper($options['filter'])); } if (empty($filter)) { $filter = ImageInterface::FILTER_UNDEFINED; } - $width = isset($options['size'][0]) ? $options['size'][0] : null; - $height = isset($options['size'][1]) ? $options['size'][1] : null; + $width = $options['size'][0] ?? null; + $height = $options['size'][1] ?? null; $size = $image->getSize(); $origWidth = $size->getWidth(); diff --git a/src/Imagine/Filter/PostProcessor/AbstractPostProcessor.php b/src/Imagine/Filter/PostProcessor/AbstractPostProcessor.php index 5d4a9b7b2..54bdefe3b 100644 --- a/src/Imagine/Filter/PostProcessor/AbstractPostProcessor.php +++ b/src/Imagine/Filter/PostProcessor/AbstractPostProcessor.php @@ -36,19 +36,19 @@ protected function createProcess(array $arguments = [], array $options = []): Pr { $process = new Process($arguments); - if (!isset($options['process'])) { + if (!\array_key_exists('process', $options)) { return $process; } - if (isset($options['process']['timeout'])) { + if (\array_key_exists('timeout', $options['process'])) { $process->setTimeout($options['process']['timeout']); } - if (isset($options['process']['working_directory'])) { + if (\array_key_exists('working_directory', $options['process'])) { $process->setWorkingDirectory($options['process']['working_directory']); } - if (isset($options['process']['environment_variables']) && \is_array($options['process']['environment_variables'])) { + if (\array_key_exists('environment_variables', $options['process']) && \is_array($options['process']['environment_variables'])) { $process->setEnv($options['process']['environment_variables']); } diff --git a/src/Imagine/Filter/PostProcessor/OptiPngPostProcessor.php b/src/Imagine/Filter/PostProcessor/OptiPngPostProcessor.php index f82b7bd56..bf3b23c0c 100644 --- a/src/Imagine/Filter/PostProcessor/OptiPngPostProcessor.php +++ b/src/Imagine/Filter/PostProcessor/OptiPngPostProcessor.php @@ -71,7 +71,7 @@ public function process(BinaryInterface $binary, array $options = []): BinaryInt } /** - * @param string[] $options + * @param array $options * * @return string[] */ @@ -79,7 +79,7 @@ private function getProcessArguments(array $options = []): array { $arguments = [$this->executablePath]; - if (null !== $level = $options['level'] ?? $this->level) { + if (null !== $level = ($options['level'] ?? $this->level)) { if (!\in_array($level, range(0, 7), true)) { throw new InvalidOptionException('the "level" option must be an int between 0 and 7', $options); } @@ -87,20 +87,20 @@ private function getProcessArguments(array $options = []): array $arguments[] = sprintf('-o%d', $level); } - if ($strip = $options['strip'] ?? $this->strip) { + if ($strip = ($options['strip'] ?? $this->strip)) { $arguments[] = '-strip'; $arguments[] = true === $strip ? 'all' : $strip; } - if (isset($options['snip']) && true === $options['snip']) { + if (true === ($options['snip'] ?? false)) { $arguments[] = '-snip'; } - if (isset($options['preserve_attributes']) && true === $options['preserve_attributes']) { + if (true === ($options['preserve_attributes'] ?? false)) { $arguments[] = '-preserve'; } - if (isset($options['interlace_type'])) { + if (\array_key_exists('interlace_type', $options) && null !== $options['interlace_type']) { if (!\in_array($options['interlace_type'], range(0, 1), true)) { throw new InvalidOptionException('the "interlace_type" option must be either 0 or 1', $options); } @@ -109,19 +109,19 @@ private function getProcessArguments(array $options = []): array $arguments[] = $options['interlace_type']; } - if (isset($options['no_bit_depth_reductions']) && true === $options['no_bit_depth_reductions']) { + if (true === ($options['no_bit_depth_reductions'] ?? false)) { $arguments[] = '-nb'; } - if (isset($options['no_color_type_reductions']) && true === $options['no_color_type_reductions']) { + if (true === ($options['no_color_type_reductions'] ?? false)) { $arguments[] = '-nc'; } - if (isset($options['no_palette_reductions']) && true === $options['no_palette_reductions']) { + if (true === ($options['no_palette_reductions'] ?? false)) { $arguments[] = '-np'; } - if (isset($options['no_reductions']) && true === $options['no_reductions']) { + if (true === ($options['no_reductions'] ?? false)) { $arguments[] = '-nx'; } diff --git a/src/Imagine/Filter/PostProcessor/PngquantPostProcessor.php b/src/Imagine/Filter/PostProcessor/PngquantPostProcessor.php index ea97085d7..fa992405a 100644 --- a/src/Imagine/Filter/PostProcessor/PngquantPostProcessor.php +++ b/src/Imagine/Filter/PostProcessor/PngquantPostProcessor.php @@ -65,7 +65,7 @@ public function process(BinaryInterface $binary, array $options = []): BinaryInt } /** - * @param string[] $options + * @param array $options * * @return string[] */ @@ -94,7 +94,7 @@ private function getProcessArguments(array $options = []): array $arguments[] = sprintf('%d-%d', $quality[0], $quality[1]); } - if (isset($options['speed'])) { + if (\array_key_exists('speed', $options) && null !== $options['speed']) { if (!\in_array($options['speed'], range(1, 11), true)) { throw new InvalidOptionException('the "speed" option must be an int between 1 and 11', $options); } @@ -103,7 +103,7 @@ private function getProcessArguments(array $options = []): array $arguments[] = $options['speed']; } - if (isset($options['dithering'])) { + if (\array_key_exists('dithering', $options) && null !== $options['dithering']) { if (false === $options['dithering']) { $arguments[] = '--nofs'; } elseif ($options['dithering'] >= 0 && $options['dithering'] <= 1) {