Permalink
Cannot retrieve contributors at this time
<?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\Notifier; | |
use Symfony\Component\EventDispatcher\Event; | |
use Symfony\Component\EventDispatcher\LegacyEventDispatcherProxy; | |
use Symfony\Component\Messenger\MessageBusInterface; | |
use Symfony\Component\Notifier\Event\MessageEvent; | |
use Symfony\Component\Notifier\Message\MessageInterface; | |
use Symfony\Component\Notifier\Message\SentMessage; | |
use Symfony\Component\Notifier\Transport\TransportInterface; | |
use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; | |
/** | |
* @author Fabien Potencier <fabien@symfony.com> | |
*/ | |
final class Texter implements TexterInterface | |
{ | |
private $transport; | |
private $bus; | |
private $dispatcher; | |
public function __construct(TransportInterface $transport, MessageBusInterface $bus = null, EventDispatcherInterface $dispatcher = null) | |
{ | |
$this->transport = $transport; | |
$this->bus = $bus; | |
$this->dispatcher = class_exists(Event::class) ? LegacyEventDispatcherProxy::decorate($dispatcher) : $dispatcher; | |
} | |
public function __toString(): string | |
{ | |
return 'texter'; | |
} | |
public function supports(MessageInterface $message): bool | |
{ | |
return $this->transport->supports($message); | |
} | |
public function send(MessageInterface $message): ?SentMessage | |
{ | |
if (null === $this->bus) { | |
$this->transport->send($message); | |
return null; | |
} | |
if (null !== $this->dispatcher) { | |
$this->dispatcher->dispatch(new MessageEvent($message, true)); | |
} | |
$this->bus->dispatch($message); | |
return null; | |
} | |
} |