diff --git a/pkg/enqueue/Resources.php b/pkg/enqueue/Resources.php index 75884bab6..713450fed 100644 --- a/pkg/enqueue/Resources.php +++ b/pkg/enqueue/Resources.php @@ -14,6 +14,7 @@ use Enqueue\Pheanstalk\PheanstalkConnectionFactory; use Enqueue\RdKafka\RdKafkaConnectionFactory; use Enqueue\Redis\RedisConnectionFactory; +use Enqueue\Sns\SnsConnectionFactory; use Enqueue\SnsQs\SnsQsConnectionFactory; use Enqueue\Sqs\SqsConnectionFactory; use Enqueue\Stomp\StompConnectionFactory; @@ -42,7 +43,7 @@ public static function getAvailableConnections(): array $availableMap = []; foreach ($map as $connectionClass => $item) { - if (class_exists($connectionClass)) { + if (\class_exists($connectionClass)) { $availableMap[$connectionClass] = $item; } } @@ -156,6 +157,10 @@ public static function getKnownConnections(): array 'schemes' => ['sqs'], 'supportedSchemeExtensions' => [], 'package' => 'enqueue/sqs', ]; + $map[SnsConnectionFactory::class] = [ + 'schemes' => ['sns'], + 'supportedSchemeExtensions' => [], + 'package' => 'enqueue/sns', ]; $map[SnsQsConnectionFactory::class] = [ 'schemes' => ['snsqs'], 'supportedSchemeExtensions' => [], @@ -183,9 +188,9 @@ public static function getKnownConnections(): array public static function addConnection(string $connectionFactoryClass, array $schemes, array $extensions, string $package): void { - if (class_exists($connectionFactoryClass)) { + if (\class_exists($connectionFactoryClass)) { if (false == (new \ReflectionClass($connectionFactoryClass))->implementsInterface(ConnectionFactory::class)) { - throw new \InvalidArgumentException(sprintf('The connection factory class "%s" must implement "%s" interface.', $connectionFactoryClass, ConnectionFactory::class)); + throw new \InvalidArgumentException(\sprintf('The connection factory class "%s" must implement "%s" interface.', $connectionFactoryClass, ConnectionFactory::class)); } } diff --git a/pkg/sns/SnsConnectionFactory.php b/pkg/sns/SnsConnectionFactory.php index ffef39803..b3efd90d7 100644 --- a/pkg/sns/SnsConnectionFactory.php +++ b/pkg/sns/SnsConnectionFactory.php @@ -51,19 +51,19 @@ public function __construct($config = 'sns:') if (empty($config)) { $config = []; - } elseif (is_string($config)) { + } elseif (\is_string($config)) { $config = $this->parseDsn($config); - } elseif (is_array($config)) { - if (array_key_exists('dsn', $config)) { - $config = array_replace_recursive($config, $this->parseDsn($config['dsn'])); + } elseif (\is_array($config)) { + if (\array_key_exists('dsn', $config)) { + $config = \array_replace_recursive($config, $this->parseDsn($config['dsn'])); unset($config['dsn']); } } else { - throw new \LogicException(sprintf('The config must be either an array of options, a DSN string, null or instance of %s', AwsSnsClient::class)); + throw new \LogicException(\sprintf('The config must be either an array of options, a DSN string, null or instance of %s', AwsSnsClient::class)); } - $this->config = array_replace($this->defaultConfig(), $config); + $this->config = \array_replace($this->defaultConfig(), $config); } /** @@ -89,6 +89,10 @@ private function establishConnection(): SnsClient $config['endpoint'] = $this->config['endpoint']; } + if (isset($this->config['profile'])) { + $config['profile'] = $this->config['profile']; + } + if ($this->config['key'] && $this->config['secret']) { $config['credentials'] = [ 'key' => $this->config['key'], @@ -117,13 +121,10 @@ private function parseDsn(string $dsn): array $dsn = Dsn::parseFirst($dsn); if ('sns' !== $dsn->getSchemeProtocol()) { - throw new \LogicException(sprintf( - 'The given scheme protocol "%s" is not supported. It must be "sns"', - $dsn->getSchemeProtocol() - )); + throw new \LogicException(\sprintf('The given scheme protocol "%s" is not supported. It must be "sns"', $dsn->getSchemeProtocol())); } - return array_filter(array_replace($dsn->getQuery(), [ + return \array_filter(\array_replace($dsn->getQuery(), [ 'key' => $dsn->getString('key'), 'secret' => $dsn->getString('secret'), 'token' => $dsn->getString('token'),