From 38f4cc279534428a17c7f43393d6ab48adb0eb1f Mon Sep 17 00:00:00 2001 From: Vincent Langlet Date: Sat, 7 Dec 2024 19:38:56 +0100 Subject: [PATCH] Drop old versions of PHP and Symfony (#2474) * Drop old versions * Rector * Fix --- composer.json | 54 +++++++++++++------------- src/Filesystem/Replicate.php | 5 +-- src/Metadata/AmazonMetadataBuilder.php | 5 +-- src/Model/NoDriverGalleryManager.php | 9 +---- src/Model/NoDriverMediaManager.php | 9 +---- src/Provider/DailyMotionProvider.php | 2 +- src/Provider/FileProvider.php | 2 +- src/Provider/VimeoProvider.php | 2 +- src/Provider/YouTubeProvider.php | 4 +- 9 files changed, 36 insertions(+), 56 deletions(-) diff --git a/composer.json b/composer.json index 1e55d5854..6e73c83cd 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ ], "homepage": "https://docs.sonata-project.org/projects/SonataMediaBundle", "require": { - "php": "^8.0", + "php": "^8.1", "doctrine/persistence": "^3.0.2", "imagine/imagine": "^1.3", "knplabs/gaufrette": "^0.10 || ^0.11", @@ -38,28 +38,28 @@ "sonata-project/doctrine-extensions": "^1.13 || ^2.0", "sonata-project/form-extensions": "^1.4 || ^2.0", "sonata-project/twig-extensions": "^1.3 || ^2.0", - "symfony/asset": "^5.4 || ^6.2 || ^7.0", - "symfony/config": "^5.4 || ^6.2 || ^7.0", - "symfony/console": "^5.4 || ^6.2 || ^7.0", - "symfony/dependency-injection": "^5.4 || ^6.2 || ^7.0", - "symfony/event-dispatcher": "^5.4 || ^6.2 || ^7.0", - "symfony/filesystem": "^5.4 || ^6.2 || ^7.0", - "symfony/finder": "^5.4 || ^6.2 || ^7.0", - "symfony/form": "^5.4 || ^6.2 || ^7.0", - "symfony/framework-bundle": "^5.4 || ^6.2 || ^7.0", - "symfony/http-client": "^5.4 || ^6.2 || ^7.0", - "symfony/http-foundation": "^5.4 || ^6.2 || ^7.0", - "symfony/http-kernel": "^5.4 || ^6.2 || ^7.0", - "symfony/mime": "^5.4 || ^6.2 || ^7.0", - "symfony/options-resolver": "^5.4 || ^6.2 || ^7.0", - "symfony/routing": "^5.4 || ^6.2 || ^7.0", - "symfony/security-bundle": "^5.4 || ^6.2 || ^7.0", - "symfony/security-core": "^5.4 || ^6.2 || ^7.0", - "symfony/translation": "^5.4 || ^6.2 || ^7.0", + "symfony/asset": "^6.4 || ^7.1", + "symfony/config": "^6.4 || ^7.1", + "symfony/console": "^6.4 || ^7.1", + "symfony/dependency-injection": "^6.4 || ^7.1", + "symfony/event-dispatcher": "^6.4 || ^7.1", + "symfony/filesystem": "^6.4 || ^7.1", + "symfony/finder": "^6.4 || ^7.1", + "symfony/form": "^6.4 || ^7.1", + "symfony/framework-bundle": "^6.4 || ^7.1", + "symfony/http-client": "^6.4 || ^7.1", + "symfony/http-foundation": "^6.4 || ^7.1", + "symfony/http-kernel": "^6.4 || ^7.1", + "symfony/mime": "^6.4 || ^7.1", + "symfony/options-resolver": "^6.4 || ^7.1", + "symfony/routing": "^6.4 || ^7.1", + "symfony/security-bundle": "^6.4 || ^7.1", + "symfony/security-core": "^6.4 || ^7.1", + "symfony/translation": "^6.4 || ^7.1", "symfony/translation-contracts": "^2.0 || ^3.0", - "symfony/twig-bridge": "^5.4 || ^6.2 || ^7.0", - "symfony/twig-bundle": "^5.4 || ^6.2 || ^7.0", - "symfony/validator": "^5.4 || ^6.2 || ^7.0", + "symfony/twig-bridge": "^6.4 || ^7.1", + "symfony/twig-bundle": "^6.4 || ^7.1", + "symfony/validator": "^6.4 || ^7.1", "twig/string-extra": "^3.0", "twig/twig": "^3.0" }, @@ -86,14 +86,14 @@ "psalm/plugin-phpunit": "^0.18", "psalm/plugin-symfony": "^5.0", "rector/rector": "^1.1", - "sonata-project/admin-bundle": "^4.28", + "sonata-project/admin-bundle": "^4.34", "sonata-project/block-bundle": "^4.11 || ^5.0", "sonata-project/classification-bundle": "^4.0", "sonata-project/doctrine-orm-admin-bundle": "^4.0", - "symfony/browser-kit": "^5.4 || ^6.2 || ^7.0", - "symfony/messenger": "^5.4 || ^6.2 || ^7.0", - "symfony/phpunit-bridge": "^6.2 || ^7.0", - "symfony/security-csrf": "^5.4 || ^6.2 || ^7.0", + "symfony/browser-kit": "^6.4 || ^7.1", + "symfony/messenger": "^6.4 || ^7.1", + "symfony/phpunit-bridge": "^6.4 || ^7.1", + "symfony/security-csrf": "^6.4 || ^7.1", "vimeo/psalm": "^5.0" }, "conflict": { diff --git a/src/Filesystem/Replicate.php b/src/Filesystem/Replicate.php index 90bca9729..54b732aad 100644 --- a/src/Filesystem/Replicate.php +++ b/src/Filesystem/Replicate.php @@ -25,14 +25,11 @@ final class Replicate implements Adapter, FileFactory, StreamFactory, MetadataSupporter { - private LoggerInterface $logger; - public function __construct( private Adapter $primary, private Adapter $secondary, - ?LoggerInterface $logger = null, + private LoggerInterface $logger = new NullLogger(), ) { - $this->logger = $logger ?? new NullLogger(); } public function delete($key): bool diff --git a/src/Metadata/AmazonMetadataBuilder.php b/src/Metadata/AmazonMetadataBuilder.php index cd2444881..6f8874be6 100644 --- a/src/Metadata/AmazonMetadataBuilder.php +++ b/src/Metadata/AmazonMetadataBuilder.php @@ -53,8 +53,6 @@ final class AmazonMetadataBuilder implements MetadataBuilderInterface 'reduced' => self::STORAGE_REDUCED, ]; - private MimeTypesInterface $mimeTypes; - /** * @param array $settings * @@ -62,9 +60,8 @@ final class AmazonMetadataBuilder implements MetadataBuilderInterface */ public function __construct( private array $settings, - ?MimeTypesInterface $mimeTypes = null, + private MimeTypesInterface $mimeTypes = new MimeTypes(), ) { - $this->mimeTypes = $mimeTypes ?? new MimeTypes(); } public function get(MediaInterface $media, string $filename): array diff --git a/src/Model/NoDriverGalleryManager.php b/src/Model/NoDriverGalleryManager.php index 3daa404a8..093dc0346 100644 --- a/src/Model/NoDriverGalleryManager.php +++ b/src/Model/NoDriverGalleryManager.php @@ -95,16 +95,9 @@ public function getTableName(): string } /** - * Do not add return typehint to this method, it forces a dependency with - * Doctrine DBAL that we do not want here. This method will probably be - * deprecated on sonata-project/doctrine-extensions because it is only for - * Doctrine ORM. - * * TODO: Remove this with the drop of sonata-project/doctrine-extensions < 2. - * - * @psalm-suppress MissingReturnType */ - public function getConnection() // @phpstan-ignore-line + public function getConnection(): never { throw new NoDriverException(); } diff --git a/src/Model/NoDriverMediaManager.php b/src/Model/NoDriverMediaManager.php index bd526c8ee..89d9dd7d2 100644 --- a/src/Model/NoDriverMediaManager.php +++ b/src/Model/NoDriverMediaManager.php @@ -95,16 +95,9 @@ public function getTableName(): string } /** - * Do not add return typehint to this method, it forces a dependency with - * Doctrine DBAL that we do not want here. This method will probably be - * deprecated on sonata-project/doctrine-extensions because it is only for - * Doctrine ORM. - * * TODO: Remove this with the drop of sonata-project/doctrine-extensions < 2. - * - * @psalm-suppress MissingReturnType */ - public function getConnection() // @phpstan-ignore-line + public function getConnection(): never { throw new NoDriverException(); } diff --git a/src/Provider/DailyMotionProvider.php b/src/Provider/DailyMotionProvider.php index 1277dac94..0446f361a 100644 --- a/src/Provider/DailyMotionProvider.php +++ b/src/Provider/DailyMotionProvider.php @@ -150,7 +150,7 @@ private function fixBinaryContent(MediaInterface $media): void return; } - if (1 === preg_match('{^(?:https?://)?www.dailymotion.com/video/(?[0-9a-zA-Z]*)}', $media->getBinaryContent(), $matches)) { + if (1 === preg_match('{^(?:https?://)?www.dailymotion.com/video/(?[0-9a-zA-Z]*)}', (string) $media->getBinaryContent(), $matches)) { $media->setBinaryContent($matches['video_id']); } } diff --git a/src/Provider/FileProvider.php b/src/Provider/FileProvider.php index 0734d5448..668ea3c2c 100644 --- a/src/Provider/FileProvider.php +++ b/src/Provider/FileProvider.php @@ -285,7 +285,7 @@ public function validate(ErrorElement $errorElement, MediaInterface $media): voi if ( '' !== $media->getBinaryContent()->getFilename() - && !\in_array(strtolower($media->getBinaryContent()->getMimeType()), $this->allowedMimeTypes, true) + && !\in_array(strtolower((string) $media->getBinaryContent()->getMimeType()), $this->allowedMimeTypes, true) ) { $errorElement ->with('binaryContent') diff --git a/src/Provider/VimeoProvider.php b/src/Provider/VimeoProvider.php index c476b8d22..a89d9345b 100644 --- a/src/Provider/VimeoProvider.php +++ b/src/Provider/VimeoProvider.php @@ -134,7 +134,7 @@ protected function fixBinaryContent(MediaInterface $media): void return; } - if (1 === preg_match('{vimeo\.com/(?:video/|)(?\d+)}', $media->getBinaryContent(), $matches)) { + if (1 === preg_match('{vimeo\.com/(?:video/|)(?\d+)}', (string) $media->getBinaryContent(), $matches)) { $media->setBinaryContent($matches['video_id']); } } diff --git a/src/Provider/YouTubeProvider.php b/src/Provider/YouTubeProvider.php index 34fb06253..88716c0fd 100644 --- a/src/Provider/YouTubeProvider.php +++ b/src/Provider/YouTubeProvider.php @@ -255,13 +255,13 @@ private function fixBinaryContent(MediaInterface $media): void return; } - if (11 === \strlen($media->getBinaryContent())) { + if (11 === \strlen((string) $media->getBinaryContent())) { return; } if (1 === preg_match( '{^(?:https?://)?(?:www\.)?(?:m\.)?(?:youtu\.be/|youtube\.com/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)/))(?[^\#\?&\'>]+)}', - $media->getBinaryContent(), + (string) $media->getBinaryContent(), $matches )) { $media->setBinaryContent($matches['video_id']);