minor #27032 [Messenger][DX] Validate that the message exists to be able to configure its routing (sroze)
This PR was merged into the 4.1-dev branch.
Discussion
----------
[Messenger][DX] Validate that the message exists to be able to configure its routing
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ø
| License | MIT
| Doc PR | ø
It attempted to me already: mispelling the message name and not understanding why it didn't work... An exception letting me know that the configured message does not exists will be 👌
Commits
-------
04d87ca829
Validate that the message exists to be able to configure its routing Uses an existing class in the tests... :) Only trigger the autoloading once
This commit is contained in:
commit
39c7c90a96
@ -1496,6 +1496,10 @@ class FrameworkExtension extends Extension
|
|||||||
|
|
||||||
$messageToSenderIdsMapping = array();
|
$messageToSenderIdsMapping = array();
|
||||||
foreach ($config['routing'] as $message => $messageConfiguration) {
|
foreach ($config['routing'] as $message => $messageConfiguration) {
|
||||||
|
if (!class_exists($message) && !interface_exists($message, false)) {
|
||||||
|
throw new LogicException(sprintf('Messenger routing configuration contains a mistake: message "%s" does not exist. It needs to match an existing class or interface.', $message));
|
||||||
|
}
|
||||||
|
|
||||||
$messageToSenderIdsMapping[$message] = $messageConfiguration['senders'];
|
$messageToSenderIdsMapping[$message] = $messageConfiguration['senders'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\BarMessage;
|
||||||
|
|
||||||
$container->loadFromExtension('framework', array(
|
$container->loadFromExtension('framework', array(
|
||||||
'messenger' => array(
|
'messenger' => array(
|
||||||
'routing' => array(
|
'routing' => array(
|
||||||
'App\Bar' => array('sender.bar', 'sender.biz'),
|
FooMessage::class => array('sender.bar', 'sender.biz'),
|
||||||
'App\Foo' => 'sender.foo',
|
BarMessage::class => 'sender.foo',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
));
|
));
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
|
|
||||||
<framework:config>
|
<framework:config>
|
||||||
<framework:messenger>
|
<framework:messenger>
|
||||||
<framework:routing message-class="App\Bar">
|
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage">
|
||||||
<framework:sender service="sender.bar" />
|
<framework:sender service="sender.bar" />
|
||||||
<framework:sender service="sender.biz" />
|
<framework:sender service="sender.biz" />
|
||||||
</framework:routing>
|
</framework:routing>
|
||||||
<framework:routing message-class="App\Foo">
|
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\BarMessage">
|
||||||
<framework:sender service="sender.foo" />
|
<framework:sender service="sender.foo" />
|
||||||
</framework:routing>
|
</framework:routing>
|
||||||
</framework:messenger>
|
</framework:messenger>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
framework:
|
framework:
|
||||||
messenger:
|
messenger:
|
||||||
routing:
|
routing:
|
||||||
'App\Bar': ['sender.bar', 'sender.biz']
|
'Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage': ['sender.bar', 'sender.biz']
|
||||||
'App\Foo': 'sender.foo'
|
'Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\BarMessage': 'sender.foo'
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger;
|
||||||
|
|
||||||
|
class BarMessage
|
||||||
|
{
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger;
|
||||||
|
|
||||||
|
class FooMessage
|
||||||
|
{
|
||||||
|
}
|
Reference in New Issue
Block a user