From 1a6cff3aa82e0eadc34a61f27e909abc5ef13dd5 Mon Sep 17 00:00:00 2001 From: Nico Anders Date: Thu, 25 Apr 2024 12:20:53 +0200 Subject: [PATCH 1/3] Compatibilty with Shopware 6.6 --- src/Command/MediaOptimizeCommand.php | 21 +++++++++------------ src/Resources/config/services.xml | 1 - 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/Command/MediaOptimizeCommand.php b/src/Command/MediaOptimizeCommand.php index 15c312c..6d724ad 100644 --- a/src/Command/MediaOptimizeCommand.php +++ b/src/Command/MediaOptimizeCommand.php @@ -5,13 +5,13 @@ namespace RuneLaenen\MediaOptimizer\Command; use Shopware\Core\Content\Media\MediaEntity; -use Shopware\Core\Content\Media\Pathname\UrlGeneratorInterface; use Shopware\Core\Framework\Context; use Shopware\Core\Framework\DataAbstractionLayer\Dbal\Common\RepositoryIterator; -use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface; +use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository; use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria; use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter; use Spatie\ImageOptimizer\OptimizerChain; +use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Helper\ProgressBar; use Symfony\Component\Console\Helper\Table; @@ -19,12 +19,16 @@ use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; +#[AsCommand( + name: 'rl:media:optimize', + description: 'Optimize media files', +)] class MediaOptimizeCommand extends Command { protected static $defaultName = 'rl:media:optimize'; /** - * @var EntityRepositoryInterface + * @var EntityRepository */ private $mediaRepository; @@ -48,26 +52,19 @@ class MediaOptimizeCommand extends Command */ private $sizePost = 0; - /** - * @var UrlGeneratorInterface - */ - private $urlGenerator; - /** * @var string */ private $projectDir; public function __construct( - EntityRepositoryInterface $mediaRepository, + EntityRepository $mediaRepository, OptimizerChain $optimizerChain, - UrlGeneratorInterface $urlGenerator, string $projectDir ) { parent::__construct(); $this->mediaRepository = $mediaRepository; $this->optimizerChain = $optimizerChain; - $this->urlGenerator = $urlGenerator; $this->projectDir = $projectDir; } @@ -157,7 +154,7 @@ private function createCriteria(): Criteria private function optimize(MediaEntity $media): void { - $mediaLocation = $this->projectDir . '/public/' . $this->urlGenerator->getRelativeMediaUrl($media); + $mediaLocation = $this->projectDir . '/public/' . $media->getPath(); if (!file_exists($mediaLocation)) { return; } diff --git a/src/Resources/config/services.xml b/src/Resources/config/services.xml index 164d759..d1acd03 100644 --- a/src/Resources/config/services.xml +++ b/src/Resources/config/services.xml @@ -9,7 +9,6 @@ - %kernel.project_dir% From 8b2123c7768d0b5933236a24a62322e4c50b9881 Mon Sep 17 00:00:00 2001 From: Nico Anders Date: Thu, 25 Apr 2024 12:24:09 +0200 Subject: [PATCH 2/3] Bump dependency --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index db29fbf..4f5c76d 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ } }, "require": { - "spatie/image-optimizer": "1.3.2" + "spatie/image-optimizer": "1.7.2" }, "require-dev": { "phpro/grumphp-shim": "^1.3", From 3efb2912ef8b8a0404349060bea8803f46a746a9 Mon Sep 17 00:00:00 2001 From: Nico Anders Date: Thu, 2 May 2024 10:34:30 +0200 Subject: [PATCH 3/3] add return type to be compatible with the interface --- src/Command/MediaOptimizeCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Command/MediaOptimizeCommand.php b/src/Command/MediaOptimizeCommand.php index 6d724ad..2eca3d5 100644 --- a/src/Command/MediaOptimizeCommand.php +++ b/src/Command/MediaOptimizeCommand.php @@ -80,7 +80,7 @@ public function configure(): void ); } - public function run(InputInterface $input, OutputInterface $output) + public function run(InputInterface $input, OutputInterface $output): int { if ($input->getOption('info')) { $optimizers = $this->optimizerChain->getOptimizers();