1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Component\Messenger\Transport\Sync;
- use Symfony\Component\Messenger\Envelope;
- use Symfony\Component\Messenger\Exception\InvalidArgumentException;
- use Symfony\Component\Messenger\MessageBusInterface;
- use Symfony\Component\Messenger\Stamp\ReceivedStamp;
- use Symfony\Component\Messenger\Stamp\SentStamp;
- use Symfony\Component\Messenger\Transport\TransportInterface;
- /**
- * Transport that immediately marks messages as received and dispatches for handling.
- *
- * @author Ryan Weaver <ryan@symfonycasts.com>
- */
- class SyncTransport implements TransportInterface
- {
- private $messageBus;
- public function __construct(MessageBusInterface $messageBus)
- {
- $this->messageBus = $messageBus;
- }
- public function get(): iterable
- {
- throw new InvalidArgumentException('You cannot receive messages from the Messenger SyncTransport.');
- }
- public function stop(): void
- {
- throw new InvalidArgumentException('You cannot call stop() on the Messenger SyncTransport.');
- }
- public function ack(Envelope $envelope): void
- {
- throw new InvalidArgumentException('You cannot call ack() on the Messenger SyncTransport.');
- }
- public function reject(Envelope $envelope): void
- {
- throw new InvalidArgumentException('You cannot call reject() on the Messenger SyncTransport.');
- }
- public function send(Envelope $envelope): Envelope
- {
- /** @var SentStamp|null $sentStamp */
- $sentStamp = $envelope->last(SentStamp::class);
- $alias = null === $sentStamp ? 'sync' : ($sentStamp->getSenderAlias() ?: $sentStamp->getSenderClass());
- $envelope = $envelope->with(new ReceivedStamp($alias));
- return $this->messageBus->dispatch($envelope);
- }
- }
|