From b0c1574f5b08d874bf36ac9facd8beeb05f98c58 Mon Sep 17 00:00:00 2001 From: Arkadiusz Kondas Date: Sun, 23 May 2021 10:41:10 +0200 Subject: [PATCH] Inject service client instead of container - fix deprecation --- src/Resources/config/services.yaml | 10 ++++------ src/Service/EventBridge/EventBridgeTransport.php | 4 ++-- .../EventBridge/EventBridgeTransportFactory.php | 16 ++++++---------- src/Service/Sns/SnsTransportFactory.php | 14 ++++++-------- 4 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/Resources/config/services.yaml b/src/Resources/config/services.yaml index 77c9062..0bf098a 100644 --- a/src/Resources/config/services.yaml +++ b/src/Resources/config/services.yaml @@ -7,17 +7,15 @@ services: # SNS Bref\Symfony\Messenger\Service\Sns\SnsTransportFactory: tags: ['messenger.transport_factory'] - autowire: true + arguments: + - '@bref.messenger.sns_client' bref.messenger.sns_client: class: AsyncAws\Sns\SnsClient - public: true - # EventBridge Bref\Symfony\Messenger\Service\EventBridge\EventBridgeTransportFactory: tags: ['messenger.transport_factory'] - autowire: true + arguments: + - '@bref.messenger.eventbridge_client' bref.messenger.eventbridge_client: class: AsyncAws\EventBridge\EventBridgeClient - public: true - diff --git a/src/Service/EventBridge/EventBridgeTransport.php b/src/Service/EventBridge/EventBridgeTransport.php index 701e961..2974a60 100644 --- a/src/Service/EventBridge/EventBridgeTransport.php +++ b/src/Service/EventBridge/EventBridgeTransport.php @@ -20,9 +20,9 @@ final class EventBridgeTransport implements TransportInterface /** @var string */ private $source; - public function __construct(EventBridgeClient $sns, SerializerInterface $serializer, string $source) + public function __construct(EventBridgeClient $eventBridge, SerializerInterface $serializer, string $source) { - $this->eventBridge = $sns; + $this->eventBridge = $eventBridge; $this->serializer = $serializer ?? new PhpSerializer; $this->source = $source; } diff --git a/src/Service/EventBridge/EventBridgeTransportFactory.php b/src/Service/EventBridge/EventBridgeTransportFactory.php index 13d810e..b236c1b 100644 --- a/src/Service/EventBridge/EventBridgeTransportFactory.php +++ b/src/Service/EventBridge/EventBridgeTransportFactory.php @@ -2,28 +2,24 @@ namespace Bref\Symfony\Messenger\Service\EventBridge; -use Psr\Container\ContainerInterface; +use AsyncAws\EventBridge\EventBridgeClient; use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface; use Symfony\Component\Messenger\Transport\TransportFactoryInterface; use Symfony\Component\Messenger\Transport\TransportInterface; final class EventBridgeTransportFactory implements TransportFactoryInterface { - /** @var ContainerInterface */ - private $container; + /** @var EventBridgeClient */ + private $eventBridge; - public function __construct(ContainerInterface $container) + public function __construct(EventBridgeClient $eventBridge) { - $this->container = $container; + $this->eventBridge = $eventBridge; } public function createTransport(string $dsn, array $options, SerializerInterface $serializer): TransportInterface { - $source = substr($dsn, strlen('eventbridge://')); - - $eventBridge = $this->container->get('bref.messenger.eventbridge_client'); - - return new EventBridgeTransport($eventBridge, $serializer, $source); + return new EventBridgeTransport($this->eventBridge, $serializer, substr($dsn, strlen('eventbridge://'))); } public function supports(string $dsn, array $options): bool diff --git a/src/Service/Sns/SnsTransportFactory.php b/src/Service/Sns/SnsTransportFactory.php index b564e4d..a5fcd6a 100644 --- a/src/Service/Sns/SnsTransportFactory.php +++ b/src/Service/Sns/SnsTransportFactory.php @@ -2,26 +2,24 @@ namespace Bref\Symfony\Messenger\Service\Sns; -use Psr\Container\ContainerInterface; +use AsyncAws\Sns\SnsClient; use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface; use Symfony\Component\Messenger\Transport\TransportFactoryInterface; use Symfony\Component\Messenger\Transport\TransportInterface; final class SnsTransportFactory implements TransportFactoryInterface { - /** @var ContainerInterface */ - private $container; + /** @var SnsClient */ + private $sns; - public function __construct(ContainerInterface $container) + public function __construct(SnsClient $sns) { - $this->container = $container; + $this->sns = $sns; } public function createTransport(string $dsn, array $options, SerializerInterface $serializer): TransportInterface { - $sns = $this->container->get('bref.messenger.sns_client'); - - return new SnsTransport($sns, $serializer, substr($dsn, 6)); + return new SnsTransport($this->sns, $serializer, substr($dsn, 6)); } public function supports(string $dsn, array $options): bool