bug #27177 Rename middlewares to middleware (fabpot, sroze)

This PR was merged into the 4.1-dev branch.

Discussion
----------

Rename middlewares to middleware

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

`middleware` is uncountable in English (like software or information). So, I've removed the `s` everywhere. We can probably be a bit more explicit if we think it makes thing easier to understand like I've done in one class, like `middlewareHandler`.

Commits
-------

9ae7c11805 Do not fix the `middleware` XML name anymore
52e7500edb removed usage of middlewares
This commit is contained in:
Samuel ROZE 2018-05-07 14:02:32 +01:00
commit 388d684d75
13 changed files with 45 additions and 40 deletions

View File

@ -1047,14 +1047,19 @@ class Configuration implements ConfigurationInterface
->end()
->scalarNode('default_bus')->defaultValue(null)->end()
->arrayNode('buses')
->defaultValue(array('default' => array('default_middlewares' => true, 'middlewares' => array())))
->defaultValue(array('default' => array('default_middleware' => true, 'middleware' => array())))
->useAttributeAsKey('name')
->prototype('array')
->fixXmlConfig('middleware')
->addDefaultsIfNotSet()
->children()
->booleanNode('default_middlewares')->defaultTrue()->end()
->arrayNode('middlewares')
->booleanNode('default_middleware')->defaultTrue()->end()
->arrayNode('middleware')
->beforeNormalization()
->ifString()
->then(function (string $middleware) {
return array($middleware);
})
->end()
->defaultValue(array())
->prototype('scalar')->end()
->end()

View File

@ -1469,15 +1469,15 @@ class FrameworkExtension extends Extension
$config['default_bus'] = key($config['buses']);
}
$defaultMiddlewares = array('before' => array('logging'), 'after' => array('route_messages', 'call_message_handler'));
$defaultMiddleware = array('before' => array('logging'), 'after' => array('route_messages', 'call_message_handler'));
foreach ($config['buses'] as $busId => $bus) {
$middlewares = $bus['default_middlewares'] ? array_merge($defaultMiddlewares['before'], $bus['middlewares'], $defaultMiddlewares['after']) : $bus['middlewares'];
$middleware = $bus['default_middleware'] ? array_merge($defaultMiddleware['before'], $bus['middleware'], $defaultMiddleware['after']) : $bus['middleware'];
if (!$validationConfig['enabled'] && \in_array('messenger.middleware.validation', $middlewares, true)) {
if (!$validationConfig['enabled'] && \in_array('messenger.middleware.validation', $middleware, true)) {
throw new LogicException('The Validation middleware is only available when the Validator component is installed and enabled. Try running "composer require symfony/validator".');
}
$container->setParameter($busId.'.middlewares', $middlewares);
$container->setParameter($busId.'.middleware', $middleware);
$container->setDefinition($busId, (new Definition(MessageBus::class, array(array())))->addTag('messenger.bus'));
if ($busId === $config['default_bus']) {

View File

@ -28,7 +28,7 @@
<argument type="collection" /> <!-- Context -->
</service>
<!-- Middlewares -->
<!-- Middleware -->
<service id="messenger.middleware.allow_no_handler" class="Symfony\Component\Messenger\Middleware\AllowNoHandlerMiddleware" abstract="true" />
<service id="messenger.middleware.call_message_handler" class="Symfony\Component\Messenger\Middleware\HandleMessageMiddleware" abstract="true">
<argument type="service" id="messenger.handler_resolver" />

View File

@ -394,6 +394,6 @@
<xsd:element name="middleware" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="default-middlewares" type="xsd:boolean"/>
<xsd:attribute name="default-middleware" type="xsd:boolean"/>
</xsd:complexType>
</xsd:schema>

View File

@ -263,7 +263,7 @@ class ConfigurationTest extends TestCase
'encoder' => 'messenger.transport.serializer',
'decoder' => 'messenger.transport.serializer',
'default_bus' => null,
'buses' => array('default' => array('default_middlewares' => true, 'middlewares' => array())),
'buses' => array('default' => array('default_middleware' => true, 'middleware' => array())),
),
);
}

View File

@ -6,13 +6,13 @@ $container->loadFromExtension('framework', array(
'buses' => array(
'messenger.bus.commands' => null,
'messenger.bus.events' => array(
'middlewares' => array(
'middleware' => array(
'allow_no_handler',
),
),
'messenger.bus.queries' => array(
'default_middlewares' => false,
'middlewares' => array(
'default_middleware' => false,
'middleware' => array(
'route_messages',
'allow_no_handler',
'call_message_handler',

View File

@ -11,7 +11,7 @@
<framework:bus name="messenger.bus.events">
<framework:middleware>allow_no_handler</framework:middleware>
</framework:bus>
<framework:bus name="messenger.bus.queries" default-middlewares="false">
<framework:bus name="messenger.bus.queries" default-middleware="false">
<framework:middleware>route_messages</framework:middleware>
<framework:middleware>allow_no_handler</framework:middleware>
<framework:middleware>call_message_handler</framework:middleware>

View File

@ -4,11 +4,11 @@ framework:
buses:
messenger.bus.commands: ~
messenger.bus.events:
middlewares:
middleware:
- "allow_no_handler"
messenger.bus.queries:
default_middlewares: false
middlewares:
default_middleware: false
middleware:
- "route_messages"
- "allow_no_handler"
- "call_message_handler"

View File

@ -611,13 +611,13 @@ abstract class FrameworkExtensionTest extends TestCase
$this->assertTrue($container->has('messenger.bus.commands'));
$this->assertSame(array(), $container->getDefinition('messenger.bus.commands')->getArgument(0));
$this->assertEquals(array('logging', 'route_messages', 'call_message_handler'), $container->getParameter('messenger.bus.commands.middlewares'));
$this->assertEquals(array('logging', 'route_messages', 'call_message_handler'), $container->getParameter('messenger.bus.commands.middleware'));
$this->assertTrue($container->has('messenger.bus.events'));
$this->assertSame(array(), $container->getDefinition('messenger.bus.events')->getArgument(0));
$this->assertEquals(array('logging', 'allow_no_handler', 'route_messages', 'call_message_handler'), $container->getParameter('messenger.bus.events.middlewares'));
$this->assertEquals(array('logging', 'allow_no_handler', 'route_messages', 'call_message_handler'), $container->getParameter('messenger.bus.events.middleware'));
$this->assertTrue($container->has('messenger.bus.queries'));
$this->assertSame(array(), $container->getDefinition('messenger.bus.queries')->getArgument(0));
$this->assertEquals(array('route_messages', 'allow_no_handler', 'call_message_handler'), $container->getParameter('messenger.bus.queries.middlewares'));
$this->assertEquals(array('route_messages', 'allow_no_handler', 'call_message_handler'), $container->getParameter('messenger.bus.queries.middleware'));
$this->assertTrue($container->hasAlias('message_bus'));
$this->assertSame('messenger.bus.commands', (string) $container->getAlias('message_bus'));

View File

@ -54,10 +54,10 @@ class MessengerPass implements CompilerPassInterface
}
foreach ($container->findTaggedServiceIds($this->busTag) as $busId => $tags) {
if ($container->hasParameter($busMiddlewaresParameter = $busId.'.middlewares')) {
$this->registerBusMiddlewares($container, $busId, $container->getParameter($busMiddlewaresParameter));
if ($container->hasParameter($busMiddlewareParameter = $busId.'.middleware')) {
$this->registerBusMiddleware($container, $busId, $container->getParameter($busMiddlewareParameter));
$container->getParameterBag()->remove($busMiddlewaresParameter);
$container->getParameterBag()->remove($busMiddlewareParameter);
}
if ($container->hasDefinition('messenger.data_collector')) {
@ -200,7 +200,7 @@ class MessengerPass implements CompilerPassInterface
$container->getDefinition('messenger.data_collector')->addMethodCall('registerBus', array($busId, new Reference($tracedBusId)));
}
private function registerBusMiddlewares(ContainerBuilder $container, string $busId, array $middlewares)
private function registerBusMiddleware(ContainerBuilder $container, string $busId, array $middleware)
{
$container->getDefinition($busId)->replaceArgument(0, array_map(function (string $name) use ($container, $busId) {
if (!$container->has($messengerMiddlewareId = 'messenger.middleware.'.$name)) {
@ -218,6 +218,6 @@ class MessengerPass implements CompilerPassInterface
}
return new Reference($messengerMiddlewareId);
}, $middlewares));
}, $middleware));
}
}

View File

@ -19,19 +19,19 @@ use Symfony\Component\Messenger\Middleware\MiddlewareInterface;
*/
class MessageBus implements MessageBusInterface
{
private $middlewares;
private $middlewareHandlers;
/**
* @var MiddlewareInterface[]|null
*/
private $indexedMiddlewares;
private $indexedMiddlewareHandlers;
/**
* @param MiddlewareInterface[]|iterable $middlewares
* @param MiddlewareInterface[]|iterable $middlewareHandlers
*/
public function __construct(iterable $middlewares = array())
public function __construct(iterable $middlewareHandlers = array())
{
$this->middlewares = $middlewares;
$this->middlewareHandlers = $middlewareHandlers;
}
/**
@ -44,15 +44,15 @@ class MessageBus implements MessageBusInterface
private function callableForNextMiddleware(int $index): callable
{
if (null === $this->indexedMiddlewares) {
$this->indexedMiddlewares = \is_array($this->middlewares) ? array_values($this->middlewares) : iterator_to_array($this->middlewares, false);
if (null === $this->indexedMiddlewareHandlers) {
$this->indexedMiddlewareHandlers = \is_array($this->middlewareHandlers) ? array_values($this->middlewareHandlers) : iterator_to_array($this->middlewareHandlers, false);
}
if (!isset($this->indexedMiddlewares[$index])) {
if (!isset($this->indexedMiddlewareHandlers[$index])) {
return function () {};
}
$middleware = $this->indexedMiddlewares[$index];
$middleware = $this->indexedMiddlewareHandlers[$index];
return function ($message) use ($middleware, $index) {
return $middleware->handle($message, $this->callableForNextMiddleware($index + 1));

View File

@ -257,20 +257,20 @@ class MessengerPassTest extends TestCase
$this->assertEquals(array(array('registerBus', array($fooBusId, new Reference($debuggedFooBusId)))), $container->getDefinition('messenger.data_collector')->getMethodCalls());
}
public function testRegistersMiddlewaresFromServices()
public function testRegistersMiddlewareFromServices()
{
$container = $this->getContainerBuilder();
$container->register($fooBusId = 'messenger.bus.foo', MessageBusInterface::class)->setArgument(0, array())->addTag('messenger.bus');
$container->register('messenger.middleware.allow_no_handler', AllowNoHandlerMiddleware::class)->setAbstract(true);
$container->register(UselessMiddleware::class, UselessMiddleware::class);
$container->setParameter($middlewaresParameter = $fooBusId.'.middlewares', array(UselessMiddleware::class, 'allow_no_handler'));
$container->setParameter($middlewareParameter = $fooBusId.'.middleware', array(UselessMiddleware::class, 'allow_no_handler'));
(new MessengerPass())->process($container);
$this->assertTrue($container->hasDefinition($childMiddlewareId = $fooBusId.'.middleware.allow_no_handler'));
$this->assertEquals(array(new Reference(UselessMiddleware::class), new Reference($childMiddlewareId)), $container->getDefinition($fooBusId)->getArgument(0));
$this->assertFalse($container->hasParameter($middlewaresParameter));
$this->assertFalse($container->hasParameter($middlewareParameter));
}
/**
@ -281,7 +281,7 @@ class MessengerPassTest extends TestCase
{
$container = $this->getContainerBuilder();
$container->register($fooBusId = 'messenger.bus.foo', MessageBusInterface::class)->setArgument(0, array())->addTag('messenger.bus');
$container->setParameter($middlewaresParameter = $fooBusId.'.middlewares', array('not_defined_middleware'));
$container->setParameter($middlewareParameter = $fooBusId.'.middleware', array('not_defined_middleware'));
(new MessengerPass())->process($container);
}

View File

@ -26,7 +26,7 @@ class MessageBusTest extends TestCase
$this->assertInstanceOf(MessageBusInterface::class, $bus);
}
public function testItCallsTheMiddlewaresAndChainTheReturnValue()
public function testItCallsMiddlewareAndChainTheReturnValue()
{
$message = new DummyMessage('Hello');
$responseFromDepthMiddleware = 1234;