Skip to content

Commit

Permalink
fix: change default serializer configuration (#48)
Browse files Browse the repository at this point in the history
- 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.
  • Loading branch information
geerteltink committed Oct 1, 2020
1 parent b73e0f6 commit 315b862
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 21 deletions.
1 change: 0 additions & 1 deletion example/full-cqrs-config.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

namespace App;

use Symfony\Component\Mailer\Messenger\MessageHandler;
use Symfony\Component\Mailer\Messenger\SendEmailMessage;

return [
Expand Down
59 changes: 59 additions & 0 deletions example/serializer-config.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<?php

declare(strict_types=1);

namespace App;

use Symfony\Component\Messenger\Transport\Serialization\Serializer;
use Xtreamwayz\PsrContainerMessenger\Serializer\SymfonySerializerFactory;

return [
// phpcs:disable
'dependencies' => [
'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
];
6 changes: 6 additions & 0 deletions example/single-bus-config.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'],
Expand Down
12 changes: 1 addition & 11 deletions src/ConfigProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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,
Expand All @@ -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
Expand Down Expand Up @@ -80,13 +77,6 @@ public function getMessenger(): array
'routes' => [],
],
],
'serializer' => [
'default_serializer' => null,
'symfony_serializer' => [
'format' => 'json',
'context' => [],
],
],
];
}

Expand Down
4 changes: 2 additions & 2 deletions test/Integration/AuraDiTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
4 changes: 2 additions & 2 deletions test/Integration/LaminasServiceManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
4 changes: 2 additions & 2 deletions test/Integration/PimpleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
4 changes: 1 addition & 3 deletions test/Serializer/SymfonySerializerFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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);
Expand Down

0 comments on commit 315b862

Please sign in to comment.