From e89eed5fc789f6230de334f891aea5d7380b743b Mon Sep 17 00:00:00 2001 From: Vincent QUATREVIEUX Date: Mon, 20 Jul 2026 14:29:44 +0200 Subject: [PATCH] feat: Compatibility with Symfony 8 (#FRAM-225) --- BdfQueueBundle.php | 2 +- Consumption/Receiver/ResetServices.php | 3 ++- Consumption/Receiver/ResetServicesFactory.php | 3 ++- DependencyInjection/BdfQueueExtension.php | 2 +- .../Compiler/DriverFactoryPass.php | 2 +- .../Compiler/RegisterFailerDriverPass.php | 2 +- .../Compiler/RegisterReceiverFactoryPass.php | 2 +- .../Receiver/ResetServicesFactoryTest.php | 3 ++- Tests/Consumption/Receiver/ResetServicesTest.php | 3 ++- Tests/Consumption/ReceiverLoaderTest.php | 5 +++-- composer.json | 16 ++++++++-------- 11 files changed, 24 insertions(+), 19 deletions(-) diff --git a/BdfQueueBundle.php b/BdfQueueBundle.php index b66f17c..8346ab1 100644 --- a/BdfQueueBundle.php +++ b/BdfQueueBundle.php @@ -15,7 +15,7 @@ */ class BdfQueueBundle extends Bundle { - public function build(ContainerBuilder $container) + public function build(ContainerBuilder $container): void { $container->addCompilerPass(new DriverFactoryPass()); $container->addCompilerPass(new RegisterFailerDriverPass()); diff --git a/Consumption/Receiver/ResetServices.php b/Consumption/Receiver/ResetServices.php index 8a407c5..737f306 100644 --- a/Consumption/Receiver/ResetServices.php +++ b/Consumption/Receiver/ResetServices.php @@ -6,6 +6,7 @@ use Bdf\Queue\Consumer\DelegateHelper; use Bdf\Queue\Consumer\ReceiverInterface; use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter; +use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetterInterface; /** * Reset all services registered on "kernel.reset". @@ -14,7 +15,7 @@ class ResetServices implements ReceiverInterface { use DelegateHelper; - public function __construct(private ServicesResetter $servicesResetter) + public function __construct(private ServicesResetter|ServicesResetterInterface|\Symfony\Component\DependencyInjection\ServicesResetter $servicesResetter) { } diff --git a/Consumption/Receiver/ResetServicesFactory.php b/Consumption/Receiver/ResetServicesFactory.php index 46e43c3..c9b2110 100644 --- a/Consumption/Receiver/ResetServicesFactory.php +++ b/Consumption/Receiver/ResetServicesFactory.php @@ -6,6 +6,7 @@ use Bdf\Queue\Consumer\ReceiverInterface; use Bdf\QueueBundle\Consumption\ReceiverFactoryInterface; use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter; +use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetterInterface; class ResetServicesFactory implements ReceiverFactoryInterface { @@ -16,7 +17,7 @@ public function getReceiverNames(): array public function create(ReceiverFactory $factory, ...$arguments): ReceiverInterface { - if (!isset($arguments[0]) || !($arguments[0] instanceof ServicesResetter)) { + if (!isset($arguments[0]) || !($arguments[0] instanceof ServicesResetter || $arguments[0] instanceof ServicesResetterInterface || $arguments[0] instanceof \Symfony\Component\DependencyInjection\ServicesResetter)) { throw new \LogicException(sprintf('First argument of %s should be an instance of %s.', ResetServices::class, ServicesResetter::class)); } diff --git a/DependencyInjection/BdfQueueExtension.php b/DependencyInjection/BdfQueueExtension.php index b0e882e..9ba85d2 100644 --- a/DependencyInjection/BdfQueueExtension.php +++ b/DependencyInjection/BdfQueueExtension.php @@ -31,7 +31,7 @@ */ class BdfQueueExtension extends Extension { - public function load(array $configs, ContainerBuilder $container) + public function load(array $configs, ContainerBuilder $container): void { $configuration = $this->getConfiguration($configs, $container); $config = $this->processConfiguration($configuration, $configs); diff --git a/DependencyInjection/Compiler/DriverFactoryPass.php b/DependencyInjection/Compiler/DriverFactoryPass.php index a6b65d3..4e593cb 100644 --- a/DependencyInjection/Compiler/DriverFactoryPass.php +++ b/DependencyInjection/Compiler/DriverFactoryPass.php @@ -14,7 +14,7 @@ final class DriverFactoryPass implements CompilerPassInterface { public const CONFIGURATOR_TAG_NAME = 'bdf_queue.driver_configurator'; - public function process(ContainerBuilder $container) + public function process(ContainerBuilder $container): void { $factory = $container->getDefinition(ConnectionDriverFactory::class); diff --git a/DependencyInjection/Compiler/RegisterFailerDriverPass.php b/DependencyInjection/Compiler/RegisterFailerDriverPass.php index 7345ec2..b84c8cd 100644 --- a/DependencyInjection/Compiler/RegisterFailerDriverPass.php +++ b/DependencyInjection/Compiler/RegisterFailerDriverPass.php @@ -16,7 +16,7 @@ final class RegisterFailerDriverPass implements CompilerPassInterface { public const CONFIGURATOR_TAG_NAME = 'bdf_queue.failer.driver_configurator'; - public function process(ContainerBuilder $container) + public function process(ContainerBuilder $container): void { $dsn = Dsn::parse($container->getParameter('bdf_queue.failer_dsn')); $scheme = $dsn->getScheme(); diff --git a/DependencyInjection/Compiler/RegisterReceiverFactoryPass.php b/DependencyInjection/Compiler/RegisterReceiverFactoryPass.php index a7a9c3a..ac67971 100644 --- a/DependencyInjection/Compiler/RegisterReceiverFactoryPass.php +++ b/DependencyInjection/Compiler/RegisterReceiverFactoryPass.php @@ -15,7 +15,7 @@ final class RegisterReceiverFactoryPass implements CompilerPassInterface { public const CONFIGURATOR_TAG_NAME = 'bdf_queue.receiver_factory'; - public function process(ContainerBuilder $container) + public function process(ContainerBuilder $container): void { $factory = $container->getDefinition(ReceiverFactory::class); diff --git a/Tests/Consumption/Receiver/ResetServicesFactoryTest.php b/Tests/Consumption/Receiver/ResetServicesFactoryTest.php index c930382..76f0f5d 100644 --- a/Tests/Consumption/Receiver/ResetServicesFactoryTest.php +++ b/Tests/Consumption/Receiver/ResetServicesFactoryTest.php @@ -7,13 +7,14 @@ use Bdf\QueueBundle\Consumption\Receiver\ResetServicesFactory; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter; +use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetterInterface; class ResetServicesFactoryTest extends TestCase { public function testServiceInstantiation() { $receiverFactory = $this->createMock(ReceiverFactory::class); - $resetter = $this->createMock(ServicesResetter::class); + $resetter = $this->createMock(\interface_exists(ServicesResetterInterface::class) ? ServicesResetterInterface::class : ServicesResetter::class); $factory = new ResetServicesFactory(); diff --git a/Tests/Consumption/Receiver/ResetServicesTest.php b/Tests/Consumption/Receiver/ResetServicesTest.php index 2f46966..d21954f 100644 --- a/Tests/Consumption/Receiver/ResetServicesTest.php +++ b/Tests/Consumption/Receiver/ResetServicesTest.php @@ -6,6 +6,7 @@ use Bdf\QueueBundle\Consumption\Receiver\ResetServices; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter; +use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetterInterface; class ResetServicesTest extends TestCase { @@ -13,7 +14,7 @@ public function testReceiveResetServices() { $message = new \stdClass(); - $resetter = $this->createMock(ServicesResetter::class); + $resetter = $this->createMock(\interface_exists(ServicesResetterInterface::class) ? ServicesResetterInterface::class : ServicesResetter::class); $resetter->expects($this->once())->method('reset'); $next = $this->createMock(NextInterface::class); diff --git a/Tests/Consumption/ReceiverLoaderTest.php b/Tests/Consumption/ReceiverLoaderTest.php index 6eebd11..a693073 100644 --- a/Tests/Consumption/ReceiverLoaderTest.php +++ b/Tests/Consumption/ReceiverLoaderTest.php @@ -19,6 +19,7 @@ use PHPUnit\Framework\TestCase; use Psr\Container\ContainerInterface; use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter; +use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetterInterface; class ReceiverLoaderTest extends TestCase { @@ -111,7 +112,7 @@ public function testWithoutServiceResetterConfig() public function testDefaultConfig() { - $this->container->set('services_resetter', $this->createMock(ServicesResetter::class)); + $this->container->set('services_resetter', $this->createMock(\interface_exists(ServicesResetterInterface::class) ? ServicesResetterInterface::class : ServicesResetter::class)); $loader = $this->getLoader([ 'foo' => [ @@ -126,7 +127,7 @@ public function testDefaultConfig() public function testFullOrderConfig() { - $this->container->set('services_resetter', $this->createMock(ServicesResetter::class)); + $this->container->set('services_resetter', $this->createMock(\interface_exists(ServicesResetterInterface::class) ? ServicesResetterInterface::class : ServicesResetter::class)); $loader = $this->getLoader([ 'foo' => [ diff --git a/composer.json b/composer.json index a653abe..6bc70d6 100644 --- a/composer.json +++ b/composer.json @@ -13,17 +13,17 @@ "require": { "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", "b2pweb/bdf-queue": "~1.4", - "symfony/config": "^6.0|~7.0", - "symfony/dependency-injection": "^6.0|~7.0", - "symfony/expression-language": "^6.0|~7.0", - "symfony/framework-bundle": "^6.0|~7.0" + "symfony/config": "^6.0|~7.0|~8.0", + "symfony/dependency-injection": "^6.0|~7.0|~8.0", + "symfony/expression-language": "^6.0|~7.0|~8.0", + "symfony/framework-bundle": "^6.0|~7.|~8.0" }, "require-dev": { "phpunit/phpunit": "~9.0", - "symfony/phpunit-bridge": "^6.0|~7.0", - "symfony/yaml": "^6.0|~7.0", - "symfony/console": "^6.0|~7.0", - "b2pweb/bdf-prime-bundle": "~1.2", + "symfony/phpunit-bridge": "^6.0|~7.0|~8.0", + "symfony/yaml": "^6.0|~7.0|~8.0", + "symfony/console": "^6.0|~7.0|~8.0", + "b2pweb/bdf-prime-bundle": "dev-feature-FRAM-233-prime-v3 as 1.11.0", "friendsofphp/php-cs-fixer": "~3.0" }, "conflict": {