Closed as not planned
Description
Symfony version(s) affected
5.4
Description
Handler attribute with fromTransport option not working
#[AsMessageHandler(fromTransport: self::QUEUE_NAME)]
and every handler is executed.
After adding the method with configuration, it works as intended:
public static function getHandledMessages(): iterable
{
yield Foo::class => [
'from_transport' => self::QUEUE_NAME,
];
}
How to reproduce
<?php
// messsenger.php
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
return static function (ContainerConfigurator $configurator) {
$configurator->extension('framework', [ 'messenger' => [
'serializer' => ['default_serializer' => 'messenger.transport.symfony_serializer'],
'default_bus' => 'messenger.bus.default',
'bus' => [
'name' => 'messenger.bus.default'
],
'transports' => [
FooMessageHandler::QUEUE_NAME => [
'dsn' => env('AMQP_TRANSPORT_DSN'),
'options' => [
'confirm_timeout' => 0.5,
'exchange' => [
'name' => FooMessageHandler::QUEUE_NAME,
'type' => 'direct',
],
'queues' => [
FooMessageHandler::QUEUE_NAME => [
'arguments' => [
'x-dead-letter-exchange' => 'X',
],
],
],
],
],
BarMessageHandler::QUEUE_NAME => [
'dsn' => env('AMQP_TRANSPORT_DSN'),
'options' => [
'exchange' => [
'name' => BarMessageHandler::QUEUE_NAME,
'type' => 'direct',
],
'queues' => [
BarMessageHandler::QUEUE_NAME => [
'arguments' => [
'x-dead-letter-exchange' => 'Y',
],
],
],
],
],
],
'routing' => [
IntegrationRequestMessage::class => [
FooMessageHandler::QUEUE_NAME,
BarMessageHandler::QUEUE_NAME,
],
],
]]);
};
Handlers:
#[AsMessageHandler(fromTransport: self::QUEUE_NAME)]
final class FooMessageHandler implements MessageHandlerInterface
{
public const QUEUE_NAME = 'foo';
public function __invoke(IntegrationRequestMessage $message): void
{
echo 'Foo';
}
}
#[AsMessageHandler(fromTransport: self::QUEUE_NAME)]
final class BarMessageHandler implements MessageHandlerInterface
{
public const QUEUE_NAME = 'bar';
public function __invoke(IntegrationRequestMessage $message): void
{
echo 'Bar';
}
}
Possible Solution
No response
Additional Context
No response