Skip to content
This repository was archived by the owner on Jul 2, 2024. It is now read-only.

Commit 255b09d

Browse files
authored
Merge pull request #36 from basz/eventmanager-deprecations
Service Manager and Event Manager compatibility
2 parents e140c09 + 2259c3d commit 255b09d

11 files changed

Lines changed: 105 additions & 34 deletions

File tree

.gitattributes

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/tests export-ignore
2+
/vendor export-ignore
3+
.gitattributes export-ignore
4+
.gitignore export-ignore
5+
.scrutinizer.yml export-ignore
6+
.travis.yml export-ignore
7+
phpunit.xml.dist export-ignore

.travis.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
1+
sudo: false
2+
13
language: php
24

5+
cache:
6+
directories:
7+
- $HOME/.composer/cache
8+
- vendor
9+
310
php:
411
- 5.5
512
- 5.6
613
- 7.0
714

15+
env:
16+
matrix:
17+
- PREFER_LOWEST="--prefer-lowest"
18+
- PREFER_LOWEST=""
19+
820
before_script:
921
- composer self-update
10-
- composer install --dev --prefer-source
22+
- composer update --prefer-source $PREFER_LOWEST
1123

1224
script:
13-
- phpunit
14-
- ./vendor/bin/phpcs --standard=PSR2 ./src/
25+
- vendor/bin/phpunit -c ./phpunit.xml.dist
26+
- vendor/bin/phpcs --standard=PSR2 src
1527

1628
notifications:
1729
irc: "irc.freenode.org#zftalk.modules"

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 0.6.0
2+
3+
- [BC] Synchronize with SlmQueue release 0.6.0 which adds compatibility with PHP7, zend-servicemanager 3 and zend-eventmanager 3
4+
15
# 0.5.0
26

37
- [BC] SlmQueueSqs is now based on AWS SDK v3. As a consequence, minimum PHP dependency has been bumped to 5.5.

composer.json

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,27 @@
2424
}
2525
],
2626
"require": {
27-
"php": ">=5.5",
28-
"zendframework/zend-mvc": "~2.2",
29-
"zendframework/zend-servicemanager": "~2.2",
30-
"zendframework/zend-stdlib": "~2.2",
31-
"slm/queue": "0.4.*",
32-
"aws/aws-sdk-php-zf2": "2.*"
27+
"php": "^5.5 || ^7.0",
28+
"zendframework/zend-eventmanager": "^2.6 || ^3.0",
29+
"zendframework/zend-servicemanager": "^2.7 || ^3.0",
30+
"zendframework/zend-stdlib": "^2.2 || ^3.0",
31+
"slm/queue": "^0.6",
32+
"aws/aws-sdk-php-zf2": "^2.0,>=2.0.2"
3333
},
3434
"require-dev": {
35-
"zendframework/zendframework": "~2.2",
36-
"phpunit/phpunit": "~4.1",
37-
"squizlabs/php_codesniffer": "2.*"
35+
"zendframework/zend-config": "^2.2",
36+
"zendframework/zend-modulemanager": "^2.5",
37+
"zendframework/zend-view": "^2.5",
38+
"zendframework/zend-log": "^2.5",
39+
"zendframework/zend-i18n": "^2.5",
40+
"zendframework/zend-serializer": "^2.5",
41+
"zendframework/zend-mvc": "^2.5",
42+
"phpunit/phpunit": "^4.8",
43+
"squizlabs/php_codesniffer": "^2.1"
3844
},
3945
"extra": {
4046
"branch-alias": {
41-
"dev-master": "0.5.0-dev"
47+
"dev-master": "0.6.x-dev"
4248
}
4349
},
4450
"autoload": {
@@ -48,5 +54,10 @@
4854
"classmap": [
4955
"./Module.php"
5056
]
57+
},
58+
"autoload-dev": {
59+
"psr-4": {
60+
"SlmQueueSqsTest\\": "tests/"
61+
}
5162
}
5263
}

phpunit.xml renamed to phpunit.xml.dist

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,11 @@
1919
<directory suffix=".php">./src</directory>
2020
</whitelist>
2121
</filter>
22+
23+
<logging>
24+
<log type="coverage-clover" target="./tests/build/logs/clover.xml"/>
25+
<log type="coverage-html" target="./tests/build/coverage" charset="UTF-8"
26+
yui="true" highlight="true" lowUpperBound="90" highLowerBound="100"/>
27+
</logging>
28+
2229
</phpunit>

src/SlmQueueSqs/Factory/SqsQueueFactory.php

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace SlmQueueSqs\Factory;
44

55
use Aws\Sdk as Aws;
6+
use Interop\Container\ContainerInterface;
67
use SlmQueue\Job\JobPluginManager;
78
use SlmQueueSqs\Options\SqsQueueOptions;
89
use SlmQueueSqs\Queue\SqsQueue;
@@ -15,21 +16,33 @@
1516
class SqsQueueFactory implements FactoryInterface
1617
{
1718
/**
18-
* {@inheritDoc}
19+
* @param ContainerInterface $container
20+
* @param string $requestedName
21+
* @param array|null $options
22+
* @return SqsQueue
1923
*/
20-
public function createService(ServiceLocatorInterface $serviceLocator, $name = '', $requestedName = '')
24+
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
2125
{
22-
$parentLocator = $serviceLocator->getServiceLocator();
23-
$sqsClient = $parentLocator->get(Aws::class)->createSqs();
24-
$jobPluginManager = $parentLocator->get(JobPluginManager::class);
26+
$sqsClient = $container->get(Aws::class)->createSqs();
27+
$jobPluginManager = $container->get(JobPluginManager::class);
2528

2629
// Let's see if we have options for this specific queue
27-
$config = $parentLocator->get('Config');
28-
$config = $config['slm_queue']['queues'];
30+
$config = $container->get('Config');
31+
$config = $config['slm_queue']['queues'];
2932

30-
$options = new SqsQueueOptions(isset($config[$requestedName]) ? $config[$requestedName] : array());
33+
$options = new SqsQueueOptions(isset($config[$requestedName]) ? $config[$requestedName] : []);
3134

3235

3336
return new SqsQueue($sqsClient, $options, $requestedName, $jobPluginManager);
3437
}
38+
39+
/**
40+
* {@inheritDoc}
41+
*/
42+
public function createService(ServiceLocatorInterface $serviceLocator, $name = '', $requestedName = '')
43+
{
44+
$parentLocator = $serviceLocator->getServiceLocator();
45+
46+
return $this($parentLocator, SqsQueue::class);
47+
}
3548
}

src/SlmQueueSqs/Factory/SqsWorkerControllerFactory.php

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace SlmQueueSqs\Factory;
44

5+
use Interop\Container\ContainerInterface;
56
use SlmQueue\Queue\QueuePluginManager;
67
use SlmQueueSqs\Controller\SqsWorkerController;
78
use SlmQueueSqs\Worker\SqsWorker;
@@ -13,16 +14,27 @@
1314
*/
1415
class SqsWorkerControllerFactory implements FactoryInterface
1516
{
17+
/**
18+
* @param ContainerInterface $container
19+
* @param $requestedName
20+
* @param array|null $options
21+
* @return SqsWorkerController
22+
*/
23+
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
24+
{
25+
$worker = $container->get(SqsWorker::class);
26+
$manager = $container->get(QueuePluginManager::class);
27+
28+
return new SqsWorkerController($worker, $manager);
29+
}
30+
1631
/**
1732
* {@inheritDoc}
1833
*/
1934
public function createService(ServiceLocatorInterface $serviceLocator)
2035
{
2136
$parentLocator = $serviceLocator->getServiceLocator();
2237

23-
$worker = $parentLocator->get(SqsWorker::class);
24-
$manager = $parentLocator->get(QueuePluginManager::class);
25-
26-
return new SqsWorkerController($worker, $manager);
38+
return $this($parentLocator, SqsWorkerController::class);
2739
}
2840
}

src/SlmQueueSqs/Worker/SqsWorker.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use SlmQueue\Job\JobInterface;
88
use SlmQueue\Queue\QueueInterface;
99
use SlmQueue\Worker\AbstractWorker;
10-
use SlmQueue\Worker\WorkerEvent;
10+
use SlmQueue\Worker\Event\ProcessJobEvent;
1111
use SlmQueueSqs\Queue\SqsQueueInterface;
1212

1313
/**
@@ -21,7 +21,7 @@ class SqsWorker extends AbstractWorker
2121
public function processJob(JobInterface $job, QueueInterface $queue)
2222
{
2323
if (!$queue instanceof SqsQueueInterface) {
24-
return WorkerEvent::JOB_STATUS_UNKNOWN;
24+
return ProcessJobEvent::JOB_STATUS_UNKNOWN;
2525
}
2626

2727
// In SQS, if an error occurs (exception for instance), the job is automatically reinserted
@@ -31,14 +31,14 @@ public function processJob(JobInterface $job, QueueInterface $queue)
3131
$job->execute();
3232
$queue->delete($job);
3333

34-
return WorkerEvent::JOB_STATUS_SUCCESS;
34+
return ProcessJobEvent::JOB_STATUS_SUCCESS;
3535
} catch (SqsException $sqsException) {
3636
// We want to retrigger SQS exception as they may include useful debugging information like lack of
3737
// permissions
3838
throw $sqsException;
3939
} catch (Exception $exception) {
4040
// Do nothing, the job will be reinserted automatically for another try
41-
return WorkerEvent::JOB_STATUS_FAILURE_RECOVERABLE;
41+
return ProcessJobEvent::JOB_STATUS_FAILURE_RECOVERABLE;
4242
}
4343
}
4444
}

tests/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
TestConfiguration.php
2+
build

tests/SlmQueueSqsTest/Queue/SqsQueueTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ public function setUp()
3434
false
3535
);
3636

37-
$this->jobPluginManager = $this->getMock('SlmQueue\Job\JobPluginManager');
37+
$this->jobPluginManager = $this->getMockBuilder('SlmQueue\Job\JobPluginManager')
38+
->disableOriginalConstructor()->getMock();
3839

3940
$this->sqsClient->expects($this->once())
4041
->method('getQueueUrl')
@@ -49,7 +50,8 @@ public function setUp()
4950
public function testReuseSqsUrlFromOptions()
5051
{
5152
$sqsClient = $this->getMock('Aws\Sqs\SqsClient', array('getQueueUrl'), array(), '', false);
52-
$jobPluginManager = $this->getMock('SlmQueue\Job\JobPluginManager');
53+
$jobPluginManager = $this->getMockBuilder('SlmQueue\Job\JobPluginManager')
54+
->disableOriginalConstructor()->getMock();
5355

5456
$this->sqsClient->expects($this->never())->method('getQueueUrl');
5557

0 commit comments

Comments
 (0)