From 315b862e2942227d05252611ffe65848e3e05d6a Mon Sep 17 00:00:00 2001 From: Geert Eltink <9497586+geerteltink@users.noreply.github.com> Date: Thu, 1 Oct 2020 22:07:44 +0200 Subject: [PATCH] fix: change default serializer configuration (#48) - fix the default PhpSerializer invokable config - fix tests for invokables as they have no factory - move the default Symfony Serializer config from the ConfigProvider The default Symfony Serializer config in the ConfigProvider caused issue when testing the container for valid values and the component is not part of the project. --- example/full-cqrs-config.php | 1 - example/serializer-config.php | 59 +++++++++++++++++++ example/single-bus-config.php | 6 ++ src/ConfigProvider.php | 12 +--- test/Integration/AuraDiTest.php | 4 +- .../Integration/LaminasServiceManagerTest.php | 4 +- test/Integration/PimpleTest.php | 4 +- .../SymfonySerializerFactoryTest.php | 4 +- 8 files changed, 73 insertions(+), 21 deletions(-) create mode 100644 example/serializer-config.php diff --git a/example/full-cqrs-config.php b/example/full-cqrs-config.php index 6839102..5ec565d 100644 --- a/example/full-cqrs-config.php +++ b/example/full-cqrs-config.php @@ -4,7 +4,6 @@ namespace App; -use Symfony\Component\Mailer\Messenger\MessageHandler; use Symfony\Component\Mailer\Messenger\SendEmailMessage; return [ diff --git a/example/serializer-config.php b/example/serializer-config.php new file mode 100644 index 0000000..12df851 --- /dev/null +++ b/example/serializer-config.php @@ -0,0 +1,59 @@ + [ + 'aliases' => [ + 'messenger.serializer' => Serializer::class, + ], + 'factories' => [ + Serializer::class => SymfonySerializerFactory::class, + ] + ], + + 'messenger' => [ + 'serializer' => [ + 'default_serializer' => null, + 'symfony_serializer' => [ + 'format' => 'json', + 'context' => [], + ], + ], + 'default_bus' => 'messenger.command.bus', + 'buses' => [ + 'messenger.command.bus' => [ + 'allows_no_handler' => false, + 'handlers' => [], + 'middleware' => [ + 'messenger.command.middleware.add_bus_stamp', + 'messenger.command.middleware.handler', + ], + 'routes' => [], + ], + 'messenger.event.bus' => [ + 'allows_no_handler' => true, + 'handlers' => [], + 'middleware' => [ + 'messenger.event.middleware.handler', + ], + 'routes' => [], + ], + 'messenger.query.bus' => [ + 'allows_no_handler' => false, + 'handlers' => [], + 'middleware' => [ + 'messenger.query.middleware.handler', + ], + 'routes' => [], + ], + ], + ], + // phpcs:enable +]; diff --git a/example/single-bus-config.php b/example/single-bus-config.php index 20f2133..7f54028 100644 --- a/example/single-bus-config.php +++ b/example/single-bus-config.php @@ -11,6 +11,12 @@ return [ // phpcs:disable 'dependencies' => [ + 'aliases' => [ + 'messenger.serializer' => PhpSerializer::class, + ], + 'invokables' => [ + PhpSerializer::class, + ], 'factories' => [ 'messenger.default.bus' => [MessageBusFactory::class, 'default'], 'messenger.default.middleware.handler' => [HandleMessageMiddlewareFactory::class, 'default'], diff --git a/src/ConfigProvider.php b/src/ConfigProvider.php index 4c324a9..23f5d52 100644 --- a/src/ConfigProvider.php +++ b/src/ConfigProvider.php @@ -6,7 +6,6 @@ use Symfony\Component\Messenger\Command\ConsumeMessagesCommand; use Symfony\Component\Messenger\Transport\Serialization\PhpSerializer; -use Symfony\Component\Messenger\Transport\Serialization\Serializer as SymfonySerializer; use Xtreamwayz\PsrContainerMessenger\Container\AddBusNameStampMiddlewareFactory; use Xtreamwayz\PsrContainerMessenger\Container\HandleMessageMiddlewareFactory; use Xtreamwayz\PsrContainerMessenger\Container\MessageBusFactory; @@ -31,7 +30,7 @@ public function getDependencies(): array 'messenger.serializer' => PhpSerializer::class, ], 'invokables' => [ - PhpSerializer::class => PhpSerializer::class, + PhpSerializer::class, ], 'factories' => [ ConsumeMessagesCommand::class => Command\ConsumeMessagesCommandFactory::class, @@ -49,8 +48,6 @@ public function getDependencies(): array 'messenger.query.middleware.sender' => [SendMessageMiddlewareFactory::class, 'messenger.query.bus'], 'messenger.command.middleware.add_bus_stamp' => [AddBusNameStampMiddlewareFactory::class, 'messenger.command.bus'], - - SymfonySerializer::class => Serializer\SymfonySerializerFactory::class, ], ]; // phpcs:enable @@ -80,13 +77,6 @@ public function getMessenger(): array 'routes' => [], ], ], - 'serializer' => [ - 'default_serializer' => null, - 'symfony_serializer' => [ - 'format' => 'json', - 'context' => [], - ], - ], ]; } diff --git a/test/Integration/AuraDiTest.php b/test/Integration/AuraDiTest.php index 11ac39a..9776540 100644 --- a/test/Integration/AuraDiTest.php +++ b/test/Integration/AuraDiTest.php @@ -44,8 +44,8 @@ public function testServicesDefinedInConfigProvider(): void $this->assertContainerHasService($container, $name, $factory); } - foreach ($config['dependencies']['invokables'] as $name => $factory) { - $this->assertContainerHasService($container, $name, $factory); + foreach ($config['dependencies']['invokables'] as $name) { + $this->assertContainerHasService($container, $name, $name); } foreach ($config['dependencies']['factories'] as $name => $factory) { diff --git a/test/Integration/LaminasServiceManagerTest.php b/test/Integration/LaminasServiceManagerTest.php index e400521..dfbc4b9 100644 --- a/test/Integration/LaminasServiceManagerTest.php +++ b/test/Integration/LaminasServiceManagerTest.php @@ -46,8 +46,8 @@ public function testServicesDefinedInConfigProvider(): void $this->assertContainerHasService($container, $name, $factory); } - foreach ($config['dependencies']['invokables'] as $name => $factory) { - $this->assertContainerHasService($container, $name, $factory); + foreach ($config['dependencies']['invokables'] as $name) { + $this->assertContainerHasService($container, $name, $name); } foreach ($config['dependencies']['factories'] as $name => $factory) { diff --git a/test/Integration/PimpleTest.php b/test/Integration/PimpleTest.php index e492c49..b0d4c52 100644 --- a/test/Integration/PimpleTest.php +++ b/test/Integration/PimpleTest.php @@ -44,8 +44,8 @@ public function testServicesDefinedInConfigProvider(): void $this->assertContainerHasService($container, $name, $factory); } - foreach ($config['dependencies']['invokables'] as $name => $factory) { - $this->assertContainerHasService($container, $name, $factory); + foreach ($config['dependencies']['invokables'] as $name) { + $this->assertContainerHasService($container, $name, $name); } foreach ($config['dependencies']['factories'] as $name => $factory) { diff --git a/test/Serializer/SymfonySerializerFactoryTest.php b/test/Serializer/SymfonySerializerFactoryTest.php index 8cea1ff..e6ba9cc 100644 --- a/test/Serializer/SymfonySerializerFactoryTest.php +++ b/test/Serializer/SymfonySerializerFactoryTest.php @@ -18,7 +18,7 @@ class SymfonySerializerFactoryTest extends TestCase public function setUp(): void { - $this->config = array_replace_recursive((new ConfigProvider())(), require 'example/basic-config.php'); + $this->config = array_replace_recursive((new ConfigProvider())(), require 'example/serializer-config.php'); } private function getContainer(): ServiceManager @@ -32,8 +32,6 @@ private function getContainer(): ServiceManager public function testSymfonySerializerIsLoaded(): void { - $this->config['dependencies']['aliases']['messenger.serializer'] = Serializer::class; - $serializer = $this->getContainer()->get('messenger.serializer'); $this->assertInstanceOf(Serializer::class, $serializer);