-
Added
PhpSerializer
which uses PHP's nativeserialize()
andunserialize()
to serialize messages to a transport -
[BC BREAK] If no serializer were passed, the default serializer changed from
Serializer
toPhpSerializer
insideAmqpReceiver
,AmqpSender
,AmqpTransport
andAmqpTransportFactory
.
- Added
HandleTrait
leveraging a message bus instance to return a single synchronous message handling result - Added
HandledStamp
&SentStamp
stamps - All the changes below are BC BREAKS
- Senders and handlers subscribing to parent interfaces now receive all matching messages, wildcard included
MessageBusInterface::dispatch()
,MiddlewareInterface::handle()
andSenderInterface::send()
returnEnvelope
MiddlewareInterface::handle()
now require anEnvelope
as first argument and aStackInterface
as secondEnvelopeAwareInterface
has been removed- The signature of
Amqp*
classes changed to take aConnection
as a first argument and an optionalSerializer
as a second argument. MessageSubscriberInterface::getHandledMessages()
return value has changed. The value of an array item needs to be an associative array or the method name.StampInterface
replacesEnvelopeItemInterface
and doesn't extendSerializable
anymore- The
ConsumeMessagesCommand
class now takes an instance ofPsr\Container\ContainerInterface
as first constructor argument - The
EncoderInterface
andDecoderInterface
have been replaced by a unifiedSymfony\Component\Messenger\Transport\Serialization\SerializerInterface
. - Renamed
EnvelopeItemInterface
toStampInterface
Envelope
's constructor andwith()
method now acceptStampInterface
objects as variadic parameters- Renamed and moved
ReceivedMessage
,ValidationConfiguration
andSerializerConfiguration
in theStamp
namespace - Removed the
WrapIntoReceivedMessage
class MessengerDataCollector::getMessages()
returns an iterable, not just an array anymoreHandlerLocatorInterface::resolve()
has been removed, useHandlersLocator::getHandlers()
insteadSenderLocatorInterface::getSenderForMessage()
has been removed, useSendersLocator::getSenders()
instead- Classes in the
Middleware\Enhancers
sub-namespace have been moved to theMiddleware
one - Classes in the
Asynchronous\Routing
sub-namespace have been moved to theTransport\Sender\Locator
sub-namespace - The
Asynchronous/Middleware/SendMessageMiddleware
class has been moved to theMiddleware
namespace SenderInterface
has been moved to theTransport\Sender
sub-namespace- The
ChainHandler
andChainSender
classes have been removed ReceiverInterface
and its implementations have been moved to theTransport\Receiver
sub-namespaceActivationMiddlewareDecorator
has been renamedActivationMiddleware
AllowNoHandlerMiddleware
has been removed in favor of a new constructor argument onHandleMessageMiddleware
- The
ContainerHandlerLocator
,AbstractHandlerLocator
,SenderLocator
andAbstractSenderLocator
classes have been removed Envelope::all()
takes a new optional$stampFqcn
argument and returns the stamps for the specified FQCN, or all stamps by their class nameEnvelope::get()
has been renamedEnvelope::last()
- Introduced the component as experimental