Skip to content

Commit 9dc7c65

Browse files
authored
Update codebase to PHP 7.4 (#6)
1 parent 8e6d23d commit 9dc7c65

File tree

11 files changed

+157
-156
lines changed

11 files changed

+157
-156
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88

99
strategy:
1010
matrix:
11-
php: [5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0]
11+
php: [7.4, 8.0, 8.1]
1212

1313
steps:
1414
- name: Checkout code

composer.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name":"codeception/module-queue",
33
"description":"Queue module for Codeception",
44
"keywords":["codeception", "queue"],
5-
"homepage":"http://codeception.com/",
5+
"homepage":"https://codeception.com/",
66
"type":"library",
77
"license":"MIT",
88
"authors":[
@@ -12,11 +12,13 @@
1212
],
1313
"minimum-stability": "RC",
1414
"require": {
15-
"php": ">=5.6.0 <9.0",
15+
"php": "^7.4 | ^8.0",
1616
"codeception/codeception": "^4.0"
1717
},
1818
"require-dev": {
19-
"pda/pheanstalk": "^3.0 | ^4.0"
19+
"pda/pheanstalk": "^3.0 | ^4.0",
20+
"iron-io/iron_mq": "^2.0 | ^3.0",
21+
"aws/aws-sdk-php": "^3.199"
2022
},
2123
"suggest": {
2224
"aws/aws-sdk-php": "For Amazon SQS",

readme.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
# Queue module for Codeception
1+
# Codeception Module Queue
22

3-
![Build Status](https://github.com/Codeception/module-queue/workflows/CI/badge.svg)
3+
Queue module for Codeception.
4+
5+
[![Actions Status](https://github.com/Codeception/module-queue/workflows/CI/badge.svg)](https://github.com/Codeception/module-queue/actions)
6+
[![Latest Stable Version](https://poser.pugx.org/codeception/module-queue/v/stable)](https://github.com/Codeception/module-queue/releases)
7+
[![Total Downloads](https://poser.pugx.org/codeception/module-queue/downloads)](https://packagist.org/packages/codeception/module-queue)
8+
[![License](https://poser.pugx.org/codeception/module-queue/license)](/LICENSE)
49

510
## Installation
611

712
```
8-
composer require --dev "codeception/module-queue"
13+
composer require "codeception/module-queue" --dev
914
```
1015

1116
## Documentation

src/Codeception/Lib/Driver/AmazonSQS.php

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
<?php
2+
3+
declare(strict_types=1);
4+
25
namespace Codeception\Lib\Driver;
36

7+
use Aws\Credentials\Credentials;
8+
use Aws\Sqs\SqsClient;
49
use Codeception\Exception\TestRuntimeException;
510
use Codeception\Lib\Interfaces\Queue;
6-
use Aws\Sqs\SqsClient;
7-
use Aws\Credentials\Credentials;
811

912
class AmazonSQS implements Queue
1013
{
11-
protected $queue;
14+
protected ?SqsClient $queue = null;
1215

1316
/**
1417
* Connect to the queueing server. (AWS, Iron.io and Beanstalkd)
15-
* @param array $config
16-
* @return
1718
*/
18-
public function openConnection($config)
19+
public function openConnection(array $config)
1920
{
2021
$params = [
2122
'region' => $config['region'],
@@ -47,9 +48,9 @@ public function openConnection($config)
4748
* Post/Put a message on to the queue server
4849
*
4950
* @param string $message Message Body to be send
50-
* @param string $queue Queue Name
51+
* @param string $queue Queue name
5152
*/
52-
public function addMessageToQueue($message, $queue)
53+
public function addMessageToQueue(string $message, string $queue)
5354
{
5455
$this->queue->sendMessage([
5556
'QueueUrl' => $this->getQueueURL($queue),
@@ -68,19 +69,19 @@ public function getQueues()
6869
$queues = $this->queue->listQueues(['QueueNamePrefix' => ''])->get('QueueUrls');
6970
foreach ($queues as $queue) {
7071
$tokens = explode('/', $queue);
71-
$queueNames[] = $tokens[sizeof($tokens) - 1];
72+
$queueNames[] = $tokens[count($tokens) - 1];
7273
}
74+
7375
return $queueNames;
7476
}
7577

7678
/**
7779
* Count the current number of messages on the queue.
7880
*
79-
* @param $queue Queue Name
80-
*
81+
* @param string $queue Queue name
8182
* @return int Count
8283
*/
83-
public function getMessagesCurrentCountOnQueue($queue)
84+
public function getMessagesCurrentCountOnQueue(string $queue)
8485
{
8586
return $this->queue->getQueueAttributes([
8687
'QueueUrl' => $this->getQueueURL($queue),
@@ -91,19 +92,18 @@ public function getMessagesCurrentCountOnQueue($queue)
9192
/**
9293
* Count the total number of messages on the queue.
9394
*
94-
* @param $queue Queue Name
95-
*
95+
* @param string $queue Queue name
9696
* @return int Count
9797
*/
98-
public function getMessagesTotalCountOnQueue($queue)
98+
public function getMessagesTotalCountOnQueue(string $queue)
9999
{
100100
return $this->queue->getQueueAttributes([
101101
'QueueUrl' => $this->getQueueURL($queue),
102102
'AttributeNames' => ['ApproximateNumberOfMessages'],
103103
])->get('Attributes')['ApproximateNumberOfMessages'];
104104
}
105105

106-
public function clearQueue($queue)
106+
public function clearQueue(string $queue)
107107
{
108108
$queueURL = $this->getQueueURL($queue);
109109
while (true) {
@@ -112,6 +112,7 @@ public function clearQueue($queue)
112112
if (!$res->getPath('Messages')) {
113113
return;
114114
}
115+
115116
foreach ($res->getPath('Messages') as $msg) {
116117
$this->queue->deleteMessage([
117118
'QueueUrl' => $queueURL,
@@ -124,19 +125,19 @@ public function clearQueue($queue)
124125
/**
125126
* Get the queue/tube URL from the queue name (AWS function only)
126127
*
127-
* @param $queue Queue Name
128-
*
128+
* @param string $queue Queue name
129129
* @return string Queue URL
130130
*/
131-
private function getQueueURL($queue)
131+
private function getQueueURL(string $queue)
132132
{
133133
$queues = $this->queue->listQueues(['QueueNamePrefix' => ''])->get('QueueUrls');
134134
foreach ($queues as $queueURL) {
135135
$tokens = explode('/', $queueURL);
136-
if (strtolower($queue) == strtolower($tokens[sizeof($tokens) - 1])) {
136+
if (strtolower($queue) === strtolower($tokens[count($tokens) - 1])) {
137137
return $queueURL;
138138
}
139139
}
140+
140141
throw new TestRuntimeException('queue [' . $queue . '] not found');
141142
}
142143

src/Codeception/Lib/Driver/Beanstalk.php

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
<?php
2+
3+
declare(strict_types=1);
4+
25
namespace Codeception\Lib\Driver;
36

47
use Codeception\Lib\Interfaces\Queue;
5-
use Pheanstalk\Pheanstalk;
68
use Pheanstalk\Exception\ConnectionException;
9+
use Pheanstalk\Pheanstalk;
10+
use PHPUnit\Framework\Assert;
711

812
class Beanstalk implements Queue
913
{
14+
protected ?Pheanstalk $queue = null;
1015

11-
/**
12-
* @var Pheanstalk
13-
*/
14-
protected $queue;
15-
16-
public function openConnection($config)
16+
public function openConnection(array $config)
1717
{
1818
$this->queue = new Pheanstalk($config['host'], $config['port'], $config['timeout']);
1919
}
@@ -22,30 +22,29 @@ public function openConnection($config)
2222
* Post/Put a message on to the queue server
2323
*
2424
* @param string $message Message Body to be send
25-
* @param string $queue Queue Name
25+
* @param string $queue Queue name
2626
*/
27-
public function addMessageToQueue($message, $queue)
27+
public function addMessageToQueue(string $message, string $queue)
2828
{
2929
$this->queue->putInTube($queue, $message);
3030
}
3131

3232
/**
3333
* Count the total number of messages on the queue.
3434
*
35-
* @param $queue Queue Name
36-
*
35+
* @param string $queue Queue name
3736
* @return int Count
3837
*/
39-
public function getMessagesTotalCountOnQueue($queue)
38+
public function getMessagesTotalCountOnQueue(string $queue)
4039
{
4140
try {
4241
return $this->queue->statsTube($queue)['total-jobs'];
43-
} catch (ConnectionException $ex) {
44-
\PHPUnit\Framework\Assert::fail("queue [$queue] not found");
42+
} catch (ConnectionException $connectionException) {
43+
Assert::fail(sprintf('queue [%s] not found', $queue));
4544
}
4645
}
4746

48-
public function clearQueue($queue = 'default')
47+
public function clearQueue(string $queue = 'default')
4948
{
5049
while ($job = $this->queue->reserveFromTube($queue, 0)) {
5150
$this->queue->delete($job);
@@ -65,16 +64,15 @@ public function getQueues()
6564
/**
6665
* Count the current number of messages on the queue.
6766
*
68-
* @param $queue Queue Name
69-
*
67+
* @param string $queue Queue name
7068
* @return int Count
7169
*/
72-
public function getMessagesCurrentCountOnQueue($queue)
70+
public function getMessagesCurrentCountOnQueue(string $queue)
7371
{
7472
try {
7573
return $this->queue->statsTube($queue)['current-jobs-ready'];
7674
} catch (ConnectionException $e) {
77-
\PHPUnit\Framework\Assert::fail("queue [$queue] not found");
75+
Assert::fail(sprintf('queue [%s] not found', $queue));
7876
}
7977
}
8078

src/Codeception/Lib/Driver/Iron.php

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,40 @@
11
<?php
2+
3+
declare(strict_types=1);
4+
25
namespace Codeception\Lib\Driver;
36

47
use Codeception\Lib\Interfaces\Queue;
8+
use Http_Exception;
9+
use IronMQ;
10+
use PHPUnit\Framework\Assert;
511

612
class Iron implements Queue
713
{
8-
/**
9-
* @var \IronMQ
10-
*/
11-
protected $queue;
14+
protected ?IronMQ $queue = null;
1215

1316
/**
1417
* Connect to the queueing server. (AWS, Iron.io and Beanstalkd)
15-
* @param array $config
16-
* @return
1718
*/
18-
public function openConnection($config)
19+
public function openConnection(array $config)
1920
{
20-
$this->queue = new \IronMQ([
21+
$this->queue = new IronMQ([
2122
"token" => $config['token'],
2223
"project_id" => $config['project'],
2324
"host" => $config['host']
2425
]);
2526
if (!$this->queue) {
26-
\PHPUnit\Framework\Assert::fail('connection failed or timed-out.');
27+
Assert::fail('connection failed or timed-out.');
2728
}
2829
}
2930

3031
/**
3132
* Post/Put a message on to the queue server
3233
*
3334
* @param string $message Message Body to be send
34-
* @param string $queue Queue Name
35+
* @param string $queue Queue name
3536
*/
36-
public function addMessageToQueue($message, $queue)
37+
public function addMessageToQueue(string $message, string $queue)
3738
{
3839
$this->queue->postMessage($queue, $message);
3940
}
@@ -56,41 +57,39 @@ public function getQueues()
5657
/**
5758
* Count the current number of messages on the queue.
5859
*
59-
* @param $queue Queue Name
60-
*
60+
* @param string $queue Queue name
6161
* @return int Count
6262
*/
63-
public function getMessagesCurrentCountOnQueue($queue)
63+
public function getMessagesCurrentCountOnQueue(string $queue)
6464
{
6565
try {
6666
return $this->queue->getQueue($queue)->size;
67-
} catch (\Http_Exception $ex) {
68-
\PHPUnit\Framework\Assert::fail("queue [$queue] not found");
67+
} catch (Http_Exception $ex) {
68+
Assert::fail("queue [$queue] not found");
6969
}
7070
}
7171

7272
/**
7373
* Count the total number of messages on the queue.
7474
*
75-
* @param $queue Queue Name
76-
*
75+
* @param string $queue Queue name
7776
* @return int Count
7877
*/
79-
public function getMessagesTotalCountOnQueue($queue)
78+
public function getMessagesTotalCountOnQueue(string $queue)
8079
{
8180
try {
8281
return $this->queue->getQueue($queue)->total_messages;
83-
} catch (\Http_Exception $e) {
84-
\PHPUnit\Framework\Assert::fail("queue [$queue] not found");
82+
} catch (Http_Exception $e) {
83+
Assert::fail("queue [$queue] not found");
8584
}
8685
}
8786

88-
public function clearQueue($queue)
87+
public function clearQueue(string $queue)
8988
{
9089
try {
9190
$this->queue->clearQueue($queue);
92-
} catch (\Http_Exception $ex) {
93-
\PHPUnit\Framework\Assert::fail("queue [$queue] not found");
91+
} catch (Http_Exception $ex) {
92+
Assert::fail("queue [$queue] not found");
9493
}
9594
}
9695

0 commit comments

Comments
 (0)