Remove the Doctrine middleware configuration from the FrameworkBundle
This commit is contained in:
parent
f785bab897
commit
27a8b1dc96
@ -1005,12 +1005,6 @@ class Configuration implements ConfigurationInterface
|
||||
->arrayNode('middlewares')
|
||||
->addDefaultsIfNotSet()
|
||||
->children()
|
||||
->arrayNode('doctrine_transaction')
|
||||
->canBeEnabled()
|
||||
->children()
|
||||
->scalarNode('entity_manager_name')->info('The name of the entity manager to use')->defaultNull()->end()
|
||||
->end()
|
||||
->end()
|
||||
->arrayNode('validation')
|
||||
->{!class_exists(FullStack::class) && class_exists(Validation::class) ? 'canBeDisabled' : 'canBeEnabled'}()
|
||||
->end()
|
||||
|
@ -13,7 +13,6 @@ namespace Symfony\Bundle\FrameworkBundle\DependencyInjection;
|
||||
|
||||
use Doctrine\Common\Annotations\Reader;
|
||||
use Doctrine\Common\Annotations\AnnotationRegistry;
|
||||
use Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddleware;
|
||||
use Symfony\Bridge\Monolog\Processor\DebugProcessor;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
@ -1454,15 +1453,6 @@ class FrameworkExtension extends Extension
|
||||
$container->getDefinition('messenger.sender_locator')->replaceArgument(0, $senderLocatorMapping);
|
||||
$container->getDefinition('messenger.asynchronous.routing.sender_locator')->replaceArgument(1, $messageToSenderIdsMapping);
|
||||
|
||||
if ($config['middlewares']['doctrine_transaction']['enabled']) {
|
||||
if (!class_exists(DoctrineTransactionMiddleware::class)) {
|
||||
throw new LogicException('The Doctrine transaction middleware is only available when the doctrine bridge is installed. Try running "composer require symfony/doctrine-bridge".');
|
||||
}
|
||||
$container->getDefinition('messenger.middleware.doctrine_transaction')->replaceArgument(1, $config['middlewares']['doctrine_transaction']['entity_manager_name']);
|
||||
} else {
|
||||
$container->removeDefinition('messenger.middleware.doctrine_transaction');
|
||||
}
|
||||
|
||||
if ($config['middlewares']['validation']['enabled']) {
|
||||
if (!$container->has('validator')) {
|
||||
throw new LogicException('The Validation middleware is only available when the Validator component is installed and enabled. Try running "composer require symfony/validator".');
|
||||
|
@ -31,13 +31,6 @@
|
||||
<tag name="message_bus_middleware" priority="100" />
|
||||
</service>
|
||||
|
||||
<service id="messenger.middleware.doctrine_transaction" class="Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddleware">
|
||||
<argument type="service" id="doctrine" />
|
||||
<argument /> <!-- Entity manager name -->
|
||||
|
||||
<tag name="message_bus_middleware" priority="9" />
|
||||
</service>
|
||||
|
||||
<!-- Asynchronous -->
|
||||
<service id="messenger.asynchronous.routing.sender_locator" class="Symfony\Component\Messenger\Asynchronous\Routing\SenderLocator">
|
||||
<argument type="service" id="messenger.sender_locator" />
|
||||
|
@ -370,16 +370,10 @@
|
||||
|
||||
<xsd:complexType name="messenger_middleware">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="doctrine-transaction" type="messenger_doctrine_transaction" minOccurs="0" maxOccurs="1" />
|
||||
<xsd:element name="validation" type="messenger_validation" minOccurs="0" maxOccurs="1" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="messenger_doctrine_transaction">
|
||||
<xsd:attribute name="entity-manager-name" type="xsd:string" />
|
||||
<xsd:attribute name="enabled" type="xsd:boolean" />
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="messenger_validation">
|
||||
<xsd:attribute name="enabled" type="xsd:boolean" />
|
||||
</xsd:complexType>
|
||||
|
@ -254,10 +254,6 @@ class ConfigurationTest extends TestCase
|
||||
'enabled' => !class_exists(FullStack::class) && class_exists(MessageBusInterface::class),
|
||||
'routing' => array(),
|
||||
'middlewares' => array(
|
||||
'doctrine_transaction' => array(
|
||||
'enabled' => false,
|
||||
'entity_manager_name' => null,
|
||||
),
|
||||
'validation' => array(
|
||||
'enabled' => !class_exists(FullStack::class),
|
||||
),
|
||||
|
@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
$container->loadFromExtension('framework', array(
|
||||
'messenger' => array(
|
||||
'middlewares' => array(
|
||||
'doctrine_transaction' => array(
|
||||
'entity_manager_name' => 'foobar',
|
||||
),
|
||||
),
|
||||
),
|
||||
));
|
@ -1,15 +0,0 @@
|
||||
<?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:messenger>
|
||||
<framework:middlewares>
|
||||
<framework:doctrine-transaction entity-manager-name="foobar" />
|
||||
</framework:middlewares>
|
||||
</framework:messenger>
|
||||
</framework:config>
|
||||
</container>
|
@ -1,5 +0,0 @@
|
||||
framework:
|
||||
messenger:
|
||||
middlewares:
|
||||
doctrine_transaction:
|
||||
entity_manager_name: 'foobar'
|
@ -12,7 +12,6 @@
|
||||
namespace Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection;
|
||||
|
||||
use Doctrine\Common\Annotations\Annotation;
|
||||
use Symfony\Bridge\Doctrine\ContainerAwareEventManager;
|
||||
use Symfony\Bundle\FullStack;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddAnnotationsCachedReaderPass;
|
||||
@ -521,18 +520,6 @@ abstract class FrameworkExtensionTest extends TestCase
|
||||
$this->assertFalse($container->hasDefinition('messenger.middleware.doctrine_transaction'));
|
||||
}
|
||||
|
||||
public function testMessengerDoctrine()
|
||||
{
|
||||
if (!class_exists(ContainerAwareEventManager::class)) {
|
||||
self::markTestSkipped('Skipping tests since Doctrine bridge is not installed');
|
||||
}
|
||||
|
||||
$container = $this->createContainerFromFile('messenger_doctrine');
|
||||
$this->assertTrue($container->hasDefinition('messenger.middleware.doctrine_transaction'));
|
||||
$def = $container->getDefinition('messenger.middleware.doctrine_transaction');
|
||||
$this->assertEquals('foobar', $def->getArgument(1));
|
||||
}
|
||||
|
||||
public function testMessengerValidationDisabled()
|
||||
{
|
||||
if (!class_exists(Validation::class)) {
|
||||
|
Reference in New Issue
Block a user