/
var
/
www
/
html
/
boaz
/
vendor
/
symfony
/
notifier
/
Upload File
HOME
<?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\Transport\TransportInterface; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; /** * @author Fabien Potencier <fabien@symfony.com> * * @experimental in 5.1 */ final class Chatter implements ChatterInterface { 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 'chat'; } public function supports(MessageInterface $message): bool { return $this->transport->supports($message); } public function send(MessageInterface $message): void { if (null === $this->bus) { $this->transport->send($message); return; } if (null !== $this->dispatcher) { $this->dispatcher->dispatch(new MessageEvent($message, true)); } $this->bus->dispatch($message); } }