diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 679a4b71..ae2e6d3c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -21,6 +21,8 @@ jobs: symfony-version: '5.4.*' - php-version: '8.2' symfony-version: '6.2.*' + - php-version: '8.2' + symfony-version: '7.0.*' steps: - name: "Checkout" uses: actions/checkout@v2 @@ -42,7 +44,7 @@ jobs: uses: ./.github/actions/install with: php-version: '8.2' - symfony-version: '6.2.*' + symfony-version: '7.0.*' - name: "Run static analyzis with phpstan/phpstan" run: vendor/bin/phpstan analyze @@ -56,7 +58,7 @@ jobs: uses: ./.github/actions/install with: php-version: '8.2' - symfony-version: '6.2.*' + symfony-version: '7.0.*' - name: "Run checkstyle with symplify/easy-coding-standard" run: vendor/bin/ecs @@ -70,7 +72,7 @@ jobs: uses: ./.github/actions/install with: php-version: '8.2' - symfony-version: '6.2.*' + symfony-version: '7.0.*' - name: "Run tests with phpunit/phpunit" run: vendor/bin/phpunit --testsuite=Convention @@ -85,7 +87,7 @@ jobs: uses: ./.github/actions/install with: php-version: '8.2' - symfony-version: '6.2.*' + symfony-version: '7.0.*' coverage-mode: 'xdebug' - name: "Run tests with phpunit/phpunit" env: diff --git a/composer.json b/composer.json index 8732d617..c4e444f4 100644 --- a/composer.json +++ b/composer.json @@ -23,15 +23,15 @@ "psr/container": "^1.0", "psr/event-dispatcher": "^1.0", "psr/log": "^1.0|^2.0|^3.0", - "symfony/config": "^5.0|^6.0", - "symfony/console": "^5.0|^6.0", - "symfony/dependency-injection": "^5.0|^6.0", - "symfony/form": "^5.0|^6.0", - "symfony/http-kernel": "^5.0|^6.0", - "symfony/framework-bundle": "^5.0|^6.0", - "symfony/messenger": "^5.0|^6.0", - "symfony/serializer": "^5.0|^6.0", - "symfony/validator": "^5.0|^6.0" + "symfony/config": "^5.0|^6.0|^7.0", + "symfony/console": "^5.0|^6.0|^7.0", + "symfony/dependency-injection": "^5.0|^6.0|^7.0", + "symfony/form": "^5.0|^6.0|^7.0", + "symfony/http-kernel": "^5.0|^6.0|^7.0", + "symfony/framework-bundle": "^5.0|^6.0|^7.0", + "symfony/messenger": "^5.0|^6.0|^7.0", + "symfony/serializer": "^5.0|^6.0|^7.0", + "symfony/validator": "^5.0|^6.0|^7.0" }, "require-dev": { "doctrine/annotations": "^1.14", @@ -41,14 +41,14 @@ "phpstan/phpstan": "^1.4", "phpunit/phpunit": "^9.5", "sonata-project/admin-bundle": "^4.0", - "symfony/browser-kit": "^5.0|^6.0", - "symfony/css-selector": "^5.0|^6.0", - "symfony/filesystem": "^5.0|^6.0", - "symfony/finder": "^5.0|^6.0", - "symfony/process": "^5.0|^6.0", - "symfony/security-bundle": "^5.0|^6.0", - "symfony/translation": "^5.0|^6.0", - "symfony/twig-bundle": "^5.0|^6.0", + "symfony/browser-kit": "^5.0|^6.0|^7.0", + "symfony/css-selector": "^5.0|^6.0|^7.0", + "symfony/filesystem": "^5.0|^6.0|^7.0", + "symfony/finder": "^5.0|^6.0|^7.0", + "symfony/process": "^5.0|^6.0|^7.0", + "symfony/security-bundle": "^5.0|^6.0|^7.0", + "symfony/translation": "^5.0|^6.0|^7.0", + "symfony/twig-bundle": "^5.0|^6.0|^7.0", "symplify/easy-coding-standard": "^11.3" }, "replace": { diff --git a/src/batch-box-spout/composer.json b/src/batch-box-spout/composer.json index 1489de0b..97e1ddac 100644 --- a/src/batch-box-spout/composer.json +++ b/src/batch-box-spout/composer.json @@ -22,7 +22,7 @@ }, "require-dev": { "phpunit/phpunit": "^9.5", - "symfony/filesystem": "^5.0|^6.0" + "symfony/filesystem": "^5.0|^6.0|^7.0" }, "autoload-dev": { "psr-4": { diff --git a/src/batch-openspout/composer.json b/src/batch-openspout/composer.json index 294860ff..cafdcd74 100644 --- a/src/batch-openspout/composer.json +++ b/src/batch-openspout/composer.json @@ -22,7 +22,7 @@ }, "require-dev": { "phpunit/phpunit": "^9.5", - "symfony/filesystem": "^5.0|^6.0" + "symfony/filesystem": "^5.0|^6.0|^7.0" }, "autoload-dev": { "psr-4": { diff --git a/src/batch-symfony-console/composer.json b/src/batch-symfony-console/composer.json index 71828396..fe5de786 100644 --- a/src/batch-symfony-console/composer.json +++ b/src/batch-symfony-console/composer.json @@ -13,7 +13,7 @@ "require": { "php": "^8.0", "ext-json": "*", - "symfony/console": "^5.0|^6.0", + "symfony/console": "^5.0|^6.0|^7.0", "yokai/batch": "^0.5.0" }, "autoload": { @@ -24,7 +24,7 @@ "require-dev": { "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "symfony/process": "^5.0|^6.0" + "symfony/process": "^5.0|^6.0|^7.0" }, "autoload-dev": { "psr-4": { diff --git a/src/batch-symfony-framework/composer.json b/src/batch-symfony-framework/composer.json index 7241cc65..110fbbfc 100644 --- a/src/batch-symfony-framework/composer.json +++ b/src/batch-symfony-framework/composer.json @@ -13,11 +13,10 @@ "require": { "php": "^8.0", "composer-runtime-api": "^2.0", - "symfony/config": "^5.0|^6.0", - "symfony/console": "^5.0|^6.0", - "symfony/dependency-injection": "^5.0|^6.0", - "symfony/http-kernel": "^5.0|^6.0", - "symfony/framework-bundle": "^5.0|^6.0", + "symfony/config": "^5.0|^6.0|^7.0", + "symfony/dependency-injection": "^5.0|^6.0|^7.0", + "symfony/http-kernel": "^5.0|^6.0|^7.0", + "symfony/framework-bundle": "^5.0|^6.0|^7.0", "yokai/batch": "^0.5.0" }, "autoload": { @@ -27,11 +26,11 @@ }, "require-dev": { "sonata-project/admin-bundle": "^4.0", - "symfony/filesystem": "^5.0|^6.0", - "symfony/form": "^5.0|^6.0", - "symfony/security-bundle": "^5.0|^6.0", - "symfony/translation": "^5.0|^6.0", - "symfony/twig-bundle": "^5.0|^6.0", + "symfony/filesystem": "^5.0|^6.0|^7.0", + "symfony/form": "^5.0|^6.0|^7.0", + "symfony/security-bundle": "^5.0|^6.0|^7.0", + "symfony/translation": "^5.0|^6.0|^7.0", + "symfony/twig-bundle": "^5.0|^6.0|^7.0", "phpunit/phpunit": "^9.5" }, "suggest": { diff --git a/src/batch-symfony-messenger/composer.json b/src/batch-symfony-messenger/composer.json index dc50496c..2a1d4207 100644 --- a/src/batch-symfony-messenger/composer.json +++ b/src/batch-symfony-messenger/composer.json @@ -12,7 +12,7 @@ ], "require": { "php": "^8.0", - "symfony/messenger": "^5.0|^6.0", + "symfony/messenger": "^5.0|^6.0|^7.0", "yokai/batch": "^0.5.0" }, "autoload": { diff --git a/src/batch-symfony-messenger/src/LaunchJobMessageHandler.php b/src/batch-symfony-messenger/src/LaunchJobMessageHandler.php index 774a392b..6cb5dfee 100644 --- a/src/batch-symfony-messenger/src/LaunchJobMessageHandler.php +++ b/src/batch-symfony-messenger/src/LaunchJobMessageHandler.php @@ -4,14 +4,15 @@ namespace Yokai\Batch\Bridge\Symfony\Messenger; -use Symfony\Component\Messenger\Handler\MessageHandlerInterface; +use Symfony\Component\Messenger\Attribute\AsMessageHandler; use Yokai\Batch\Job\JobExecutionAccessor; use Yokai\Batch\Job\JobExecutor; /** * Answer to {@see LaunchJobMessage} and launch requested job. */ -final class LaunchJobMessageHandler implements MessageHandlerInterface +#[AsMessageHandler] +final class LaunchJobMessageHandler { public function __construct( private JobExecutionAccessor $jobExecutionAccessor, diff --git a/src/batch-symfony-serializer/composer.json b/src/batch-symfony-serializer/composer.json index 3a16c072..46d83e8c 100644 --- a/src/batch-symfony-serializer/composer.json +++ b/src/batch-symfony-serializer/composer.json @@ -12,7 +12,7 @@ ], "require": { "php": "^8.0", - "symfony/serializer": "^5.0|^6.0", + "symfony/serializer": "^5.0|^6.0|^7.0", "yokai/batch": "^0.5.0" }, "autoload": { diff --git a/src/batch-symfony-serializer/tests/Dummy/DummyNormalizer.php b/src/batch-symfony-serializer/tests/Dummy/DummyNormalizer.php index 6324538c..4d079e07 100644 --- a/src/batch-symfony-serializer/tests/Dummy/DummyNormalizer.php +++ b/src/batch-symfony-serializer/tests/Dummy/DummyNormalizer.php @@ -4,6 +4,7 @@ namespace Yokai\Batch\Tests\Bridge\Symfony\Serializer\Dummy; +use ArrayObject; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; @@ -15,23 +16,28 @@ public function __construct( ) { } - public function supportsNormalization(mixed $data, string $format = null) + public function supportsNormalization(mixed $data, string $format = null, array $context = null): bool { return $this->supports; } - public function normalize(mixed $object, string $format = null, array $context = []) + public function normalize(mixed $object, string $format = null, array $context = []): ArrayObject|array|string|int|float|bool|null { return $this->value; } - public function supportsDenormalization(mixed $data, string $type, string $format = null) + public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = null): bool { return $this->supports; } - public function denormalize(mixed $data, string $type, string $format = null, array $context = []) + public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed { return $this->value; } + + public function getSupportedTypes(?string $format): array + { + return []; + } } diff --git a/src/batch-symfony-serializer/tests/Dummy/FailingNormalizer.php b/src/batch-symfony-serializer/tests/Dummy/FailingNormalizer.php index 3f89767e..53753499 100644 --- a/src/batch-symfony-serializer/tests/Dummy/FailingNormalizer.php +++ b/src/batch-symfony-serializer/tests/Dummy/FailingNormalizer.php @@ -4,6 +4,7 @@ namespace Yokai\Batch\Tests\Bridge\Symfony\Serializer\Dummy; +use ArrayObject; use Symfony\Component\Serializer\Exception\ExceptionInterface; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; @@ -15,23 +16,28 @@ public function __construct( ) { } - public function supportsNormalization(mixed $data, string $format = null) + public function supportsNormalization(mixed $data, string $format = null, array $context = null): bool { return true; } - public function normalize(mixed $object, string $format = null, array $context = []) + public function normalize(mixed $object, string $format = null, array $context = []): ArrayObject|array|string|int|float|bool|null { throw $this->exception; } - public function supportsDenormalization(mixed $data, string $type, string $format = null) + public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = null): bool { return true; } - public function denormalize(mixed $data, string $type, string $format = null, array $context = []) + public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed { throw $this->exception; } + + public function getSupportedTypes(?string $format): array + { + return []; + } } diff --git a/src/batch-symfony-validator/composer.json b/src/batch-symfony-validator/composer.json index ae0672b1..eb47535e 100644 --- a/src/batch-symfony-validator/composer.json +++ b/src/batch-symfony-validator/composer.json @@ -12,7 +12,7 @@ ], "require": { "php": "^8.0", - "symfony/validator": "^5.0|^6.0", + "symfony/validator": "^5.0|^6.0|^7.0", "yokai/batch": "^0.5.0" }, "autoload": { diff --git a/src/batch/composer.json b/src/batch/composer.json index a1c9e228..31511bc0 100644 --- a/src/batch/composer.json +++ b/src/batch/composer.json @@ -24,7 +24,7 @@ "require-dev": { "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "symfony/filesystem": "^5.0|^6.0" + "symfony/filesystem": "^5.0|^6.0|^7.0" }, "autoload-dev": { "psr-4": { diff --git a/tests/symfony/tests/JobTest.php b/tests/symfony/tests/JobTest.php index 3e27e0cb..745451c8 100644 --- a/tests/symfony/tests/JobTest.php +++ b/tests/symfony/tests/JobTest.php @@ -8,15 +8,15 @@ use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use Symfony\Component\Console\Tester\CommandTester; -use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\DependencyInjection\Container; use Yokai\Batch\Launcher\JobLauncherInterface; use Yokai\Batch\Storage\JobExecutionStorageInterface; final class JobTest extends KernelTestCase { - protected static $booted = false; + protected static bool $booted = false; - protected static function getContainer(): ContainerInterface + protected static function getContainer(): Container { if (\method_exists(KernelTestCase::class, __FUNCTION__)) { return parent::getContainer();