Skip to content

Commit 712de93

Browse files
committed
Merge branch 'chriwup-master'
2 parents 2017d80 + f2ef8de commit 712de93

3 files changed

Lines changed: 35 additions & 12 deletions

File tree

src/Command/QueueReceiveCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ private function pollQueue($registry, $name)
9797
);
9898
}
9999

100-
$dispatcher = $this->getContainer()->get('event_dispatcher');
100+
$dispatcher = $this->container->get('event_dispatcher');
101101
$messages = $registry->get($name)->receive();
102102

103103
foreach ($messages as $message) {

src/DependencyInjection/UecodeQPushExtension.php

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,24 +136,45 @@ private function createAwsClient($config, ContainerBuilder $container, $name)
136136

137137
if (!$container->hasDefinition($service)) {
138138

139-
if (!class_exists('Aws\Common\Aws')) {
139+
$aws2 = class_exists('Aws\Common\Aws');
140+
$aws3 = class_exists('Aws\Sdk');
141+
if (!$aws2 && !$aws3) {
140142
throw new \RuntimeException(
141143
'You must require "aws/aws-sdk-php" to use the AWS provider.'
142144
);
143145
}
144146

145-
$awsConfig = [];
146-
if (!empty($config['key']) && !empty($config['secret'])) {
147-
$awsConfig['key'] = $config['key'];
148-
$awsConfig['secret'] = $config['secret'];
149-
}
150-
151-
$awsConfig['region'] = $config['region'];
147+
$awsConfig = [
148+
'region' => $config['region']
149+
];
152150

153151
$aws = new Definition('Aws\Common\Aws');
154152
$aws->setFactory(['Aws\Common\Aws', 'factory']);
155153
$aws->setArguments([$awsConfig]);
156154

155+
if ($aws2) {
156+
$aws = new Definition('Aws\Common\Aws');
157+
$aws->setFactory(['Aws\Common\Aws', 'factory']);
158+
159+
if (!empty($config['key']) && !empty($config['secret'])) {
160+
$awsConfig['key'] = $config['key'];
161+
$awsConfig['secret'] = $config['secret'];
162+
}
163+
164+
} else {
165+
$aws = new Definition('Aws\Sdk');
166+
167+
if (!empty($config['key']) && !empty($config['secret'])) {
168+
$awsConfig['credentials'] = [
169+
'key' => $config['key'],
170+
'secret' => $config['secret']
171+
];
172+
}
173+
$awsConfig['version'] = 'latest';
174+
}
175+
176+
$aws->setArguments([$awsConfig]);
177+
157178
$container->setDefinition($service, $aws)
158179
->setPublic(false);
159180
}

src/Provider/AwsProvider.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222

2323
namespace Uecode\Bundle\QPushBundle\Provider;
2424

25-
use Aws\Common\Aws;
2625
use Aws\Sns\SnsClient;
2726
use Aws\Sqs\SqsClient;
2827
use Aws\Sqs\Exception\SqsException;
28+
2929
use Doctrine\Common\Cache\Cache;
3030
use Symfony\Bridge\Monolog\Logger;
3131
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
@@ -71,10 +71,12 @@ public function __construct($name, array $options, $client, Cache $cache, Logger
7171
{
7272
$this->name = $name;
7373
$this->options = $options;
74-
$this->sqs = $client->get('Sqs');
75-
$this->sns = $client->get('Sns');
7674
$this->cache = $cache;
7775
$this->logger = $logger;
76+
// get() method used for sdk v2, create methods for v3
77+
$useGet = method_exists($client, 'get');
78+
$this->sqs = $useGet ? $client->get('Sqs') : $client->createSqs();
79+
$this->sns = $useGet ? $client->get('Sns') : $client->createSns();
7880
}
7981

8082
public function getProvider()

0 commit comments

Comments
 (0)