AmqpTransportFactory.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Component\Messenger\Bridge\Amqp\Transport;
  11. use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
  12. use Symfony\Component\Messenger\Transport\TransportFactoryInterface;
  13. use Symfony\Component\Messenger\Transport\TransportInterface;
  14. /**
  15. * @author Samuel Roze <samuel.roze@gmail.com>
  16. */
  17. class AmqpTransportFactory implements TransportFactoryInterface
  18. {
  19. public function createTransport(string $dsn, array $options, SerializerInterface $serializer): TransportInterface
  20. {
  21. unset($options['transport_name']);
  22. return new AmqpTransport(Connection::fromDsn($dsn, $options), $serializer);
  23. }
  24. public function supports(string $dsn, array $options): bool
  25. {
  26. return 0 === strpos($dsn, 'amqp://') || 0 === strpos($dsn, 'amqps://');
  27. }
  28. }
  29. class_alias(AmqpTransportFactory::class, \Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransportFactory::class);