[FrameworkBundle] Minor messenger component tweaks

This commit is contained in:
Maxime Steinhausser 2018-04-05 17:47:14 +02:00
parent f9c9ca0514
commit 6aec62bad3
9 changed files with 48 additions and 5 deletions

View File

@ -60,6 +60,7 @@ use Symfony\Component\Lock\LockInterface;
use Symfony\Component\Lock\Store\StoreFactory;
use Symfony\Component\Lock\StoreInterface;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
use Symfony\Component\Messenger\MessageBusInterface;
use Symfony\Component\Messenger\Transport\ReceiverInterface;
use Symfony\Component\Messenger\Transport\SenderInterface;
use Symfony\Component\PropertyAccess\PropertyAccessor;
@ -1436,6 +1437,10 @@ class FrameworkExtension extends Extension
private function registerMessengerConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
{
if (!interface_exists(MessageBusInterface::class)) {
throw new LogicException('Messenger support cannot be enabled as the Messenger component is not installed.');
}
$loader->load('messenger.xml');
$senderLocatorMapping = array();

View File

@ -0,0 +1,12 @@
<?php
$container->loadFromExtension('framework', array(
'validation' => array('enabled' => true),
'messenger' => array(
'middlewares' => array(
'validation' => array(
'enabled' => true,
),
),
),
));

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:framework="http://symfony.com/schema/dic/symfony"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
<framework:config>
<framework:validation enabled="true"/>
<framework:messenger>
<framework:middlewares>
<framework:validation enabled="true"/>
</framework:middlewares>
</framework:messenger>
</framework:config>
</container>

View File

@ -0,0 +1,7 @@
framework:
validation:
enabled: true
messenger:
middlewares:
validation:
enabled: true

View File

@ -520,13 +520,15 @@ abstract class FrameworkExtensionTest extends TestCase
$this->assertFalse($container->hasDefinition('messenger.middleware.doctrine_transaction'));
}
public function testMessengerValidationEnabled()
{
$container = $this->createContainerFromFile('messenger_validation_enabled');
$this->assertTrue($definition = $container->hasDefinition('messenger.middleware.validator'));
}
public function testMessengerValidationDisabled()
{
if (!class_exists(Validation::class)) {
self::markTestSkipped('Skipping tests since Validator component is not installed');
}
$container = $this->createContainerFromFile('messenger_validation');
$container = $this->createContainerFromFile('messenger_validation_disabled');
$this->assertFalse($container->hasDefinition('messenger.middleware.validator'));
}

View File

@ -41,6 +41,7 @@
"symfony/security": "~3.4|~4.0",
"symfony/form": "^4.1",
"symfony/expression-language": "~3.4|~4.0",
"symfony/messenger": "^4.1",
"symfony/process": "~3.4|~4.0",
"symfony/security-core": "~3.4|~4.0",
"symfony/security-csrf": "~3.4|~4.0",