Skip to content

Commit f366c60

Browse files
authored
Merge pull request #1239 from andrewmy/add-sf-6
Add support for Symfony 6; drop < 5.1
2 parents 1fc0fcc + dc3f0d6 commit f366c60

39 files changed

+616
-451
lines changed

Diff for: .github/workflows/ci.yml

+10-6
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,13 @@ jobs:
7878
fail-fast: false
7979
matrix:
8080
php: ['7.3', '7.4', '8.0']
81-
symfony_version: ['4.4.*', '5.2.*']
81+
symfony_version: ['5.2.*', '6.0.*']
8282
dependencies: ['--prefer-lowest', '--prefer-dist']
8383
exclude:
84-
- php: '8.0'
85-
symfony_version: '4.4.*'
84+
- php: '7.3'
85+
symfony_version: '6.0.*'
86+
- php: '7.4'
87+
symfony_version: '6.0.*'
8688

8789
name: PHP ${{ matrix.php }} unit tests on Sf ${{ matrix.symfony_version }}, deps=${{ matrix.dependencies }}
8890

@@ -122,12 +124,14 @@ jobs:
122124
fail-fast: false
123125
matrix:
124126
php: ['7.4', '8.0'] # same as in the container
125-
symfony_version: ['4.4.*', '5.2.*']
127+
symfony_version: ['5.2.*', '6.0.*']
126128
dependencies: ['--prefer-lowest', '--prefer-dist']
127129
rdkafka_action: ['exclude-group', 'group']
128130
exclude:
129-
- php: '8.0'
130-
symfony_version: '4.4.*'
131+
- php: '7.3'
132+
symfony_version: '6.0.*'
133+
- php: '7.4'
134+
symfony_version: '6.0.*'
131135

132136
name: PHP ${{ matrix.php }} functional tests on Sf ${{ matrix.symfony_version }}, rdkafka_action=${{ matrix.rdkafka_action }}, deps=${{ matrix.dependencies }}
133137

Diff for: .php_cs.php

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,28 @@
11
<?php
22

3-
return PhpCsFixer\Config::create()
3+
return (new PhpCsFixer\Config())
44
->setRiskyAllowed(true)
55
->setRules(array(
66
'@Symfony' => true,
77
'@Symfony:risky' => true,
88
'array_syntax' => array('syntax' => 'short'),
99
'combine_consecutive_unsets' => true,
1010
// one should use PHPUnit methods to set up expected exception instead of annotations
11-
'general_phpdoc_annotation_remove' => array('expectedException', 'expectedExceptionMessage', 'expectedExceptionMessageRegExp'),
11+
'general_phpdoc_annotation_remove' => ['annotations' =>
12+
['expectedException', 'expectedExceptionMessage', 'expectedExceptionMessageRegExp']
13+
],
1214
'heredoc_to_nowdoc' => true,
13-
'no_extra_consecutive_blank_lines' => array('break', 'continue', 'extra', 'return', 'throw', 'use', 'parenthesis_brace_block', 'square_brace_block', 'curly_brace_block'),
15+
'no_extra_blank_lines' => ['tokens' => [
16+
'break', 'continue', 'extra', 'return', 'throw', 'use', 'parenthesis_brace_block', 'square_brace_block', 'curly_brace_block']
17+
],
1418
'no_unreachable_default_argument_value' => true,
1519
'no_useless_else' => true,
1620
'no_useless_return' => true,
1721
'ordered_class_elements' => true,
1822
'ordered_imports' => true,
1923
'phpdoc_add_missing_param_annotation' => true,
2024
'phpdoc_order' => true,
21-
'psr4' => true,
25+
'psr_autoloading' => true,
2226
'strict_param' => true,
2327
'native_function_invocation' => false,
2428
))

Diff for: composer.json

+15-14
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"doctrine/dbal": "^2.12|^3.1",
2424
"ramsey/uuid": "^3.5|^4",
2525
"psr/log": "^1.1 || ^2.0 || ^3.0",
26-
"psr/container": "^1 || ^2.0",
26+
"psr/container": "^1.1 || ^2.0",
2727
"makasim/temp-file": "^0.2",
2828
"google/cloud-pubsub": "^1.4.3",
2929
"doctrine/orm": "^2.7.4",
@@ -53,23 +53,23 @@
5353
"phpunit/phpunit": "^9.5",
5454
"phpstan/phpstan": "^0.12",
5555
"queue-interop/queue-spec": "^0.6.2",
56-
"symfony/browser-kit": "^4.3|^5",
57-
"symfony/config": "^4.3|^5",
58-
"symfony/process": "^4.3|^5",
59-
"symfony/console": "^4.3|^5",
60-
"symfony/dependency-injection": "^4.3|^5",
61-
"symfony/event-dispatcher": "^4.3|^5",
62-
"symfony/expression-language": "^4.3|^5",
63-
"symfony/http-kernel": "^4.3|^5",
64-
"symfony/filesystem": "^4.3|^5",
65-
"symfony/framework-bundle": "^4.3|^5",
66-
"symfony/yaml": "^4.3|^5",
56+
"symfony/browser-kit": "^5.1|^6.0",
57+
"symfony/config": "^5.1|^6.0",
58+
"symfony/process": "^5.1|^6.0",
59+
"symfony/console": "^5.1|^6.0",
60+
"symfony/dependency-injection": "^5.1|^6.0",
61+
"symfony/event-dispatcher": "^5.1|^6.0",
62+
"symfony/expression-language": "^5.1|^6.0",
63+
"symfony/http-kernel": "^5.1|^6.0",
64+
"symfony/filesystem": "^5.1|^6.0",
65+
"symfony/framework-bundle": "^5.1|^6.0",
66+
"symfony/yaml": "^5.1|^6.0",
6767
"empi89/php-amqp-stubs": "*@dev",
6868
"doctrine/doctrine-bundle": "^2.0",
6969
"doctrine/mongodb-odm-bundle": "^3.5|^4.3",
7070
"alcaeus/mongo-php-adapter": "^1.0",
7171
"kwn/php-rdkafka-stubs": "^2.0.3",
72-
"friendsofphp/php-cs-fixer": "^2",
72+
"friendsofphp/php-cs-fixer": "^3.4",
7373
"dms/phpunit-arraysubset-asserts": "^0.2.1",
7474
"phpspec/prophecy-phpunit": "^2.0"
7575
},
@@ -127,7 +127,8 @@
127127
"ext-mongodb": "1.5",
128128
"ext-bcmath": "1",
129129
"ext-mbstring": "1",
130-
"ext-mongo": "1.6.14"
130+
"ext-mongo": "1.6.14",
131+
"ext-sockets": "1"
131132
},
132133
"prefer-stable": true
133134
}

Diff for: docs/bundle/async_events.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ enqueue:
3939

4040
## Usage
4141

42-
To make your listener async you have add `async: true` attribute to the tag `kernel.event_listener`, like this:
42+
To make your listener async you have add `async: true` and `dispatcher: 'enqueue.events.event_dispatcher'` attributes to the tag `kernel.event_listener`, like this:
4343

4444
```yaml
4545
# app/config/config.yml
@@ -48,7 +48,7 @@ services:
4848
acme.foo_listener:
4949
class: 'AcmeBundle\Listener\FooListener'
5050
tags:
51-
- { name: 'kernel.event_listener', async: true, event: 'foo', method: 'onEvent' }
51+
- { name: 'kernel.event_listener', async: true, event: 'foo', method: 'onEvent', dispatcher: 'enqueue.events.event_dispatcher' }
5252
```
5353
5454
or to `kernel.event_subscriber`:
@@ -60,7 +60,7 @@ services:
6060
test_async_subscriber:
6161
class: 'AcmeBundle\Listener\TestAsyncSubscriber'
6262
tags:
63-
- { name: 'kernel.event_subscriber', async: true }
63+
- { name: 'kernel.event_subscriber', async: true, dispatcher: 'enqueue.events.event_dispatcher' }
6464
```
6565

6666
That's basically it. The rest of the doc describes advanced features.
@@ -78,7 +78,7 @@ services:
7878
public: false
7979
arguments: ['@enqueue.transport.default.context', '@enqueue.events.registry', 'a_queue_name']
8080
tags:
81-
- { name: 'kernel.event_listener', event: 'foo', method: 'onEvent' }
81+
- { name: 'kernel.event_listener', event: 'foo', method: 'onEvent', dispatcher: 'enqueue.events.event_dispatcher' }
8282
```
8383

8484

Diff for: pkg/async-command/composer.json

+8-8
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@
99
"php": "^7.3|^8.0",
1010
"enqueue/enqueue": "^0.10",
1111
"queue-interop/queue-interop": "^0.8",
12-
"symfony/console": "^4.3|^5",
13-
"symfony/process": "^4.3|^5"
12+
"symfony/console": "^5.1|^6.0",
13+
"symfony/process": "^5.1|^6.0"
1414
},
1515
"require-dev": {
1616
"phpunit/phpunit": "^9.5",
17-
"symfony/dependency-injection": "^4.3|^5",
18-
"symfony/config": "^4.3|^5",
19-
"symfony/http-kernel": "^4.3|^5",
20-
"symfony/filesystem": "^4.3|^5",
21-
"symfony/yaml": "^4.3|^5",
17+
"symfony/dependency-injection": "^5.1|^6.0",
18+
"symfony/config": "^5.1|^6.0",
19+
"symfony/http-kernel": "^5.1|^6.0",
20+
"symfony/filesystem": "^5.1|^6.0",
21+
"symfony/yaml": "^5.1|^6.0",
2222
"enqueue/null": "0.10.x-dev",
2323
"enqueue/fs": "0.10.x-dev",
2424
"enqueue/test": "0.10.x-dev"
@@ -31,7 +31,7 @@
3131
"docs": "https://github.com/php-enqueue/enqueue-dev/blob/master/docs/index.md"
3232
},
3333
"suggest": {
34-
"symfony/dependency-injection": "^4.3|^5 If you'd like to use async event dispatcher container extension."
34+
"symfony/dependency-injection": "^5.1|^6.0 If you'd like to use async event dispatcher container extension."
3535
},
3636
"autoload": {
3737
"psr-4": { "Enqueue\\AsyncCommand\\": "" },

Diff for: pkg/async-event-dispatcher/AsyncEventDispatcher.php

+8-39
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,17 @@
22

33
namespace Enqueue\AsyncEventDispatcher;
44

5-
use Symfony\Component\EventDispatcher\Event;
6-
7-
if (class_exists(Event::class)) {
8-
/**
9-
* Symfony < 5.0.
10-
*/
11-
class AsyncEventDispatcher extends AbstractAsyncEventDispatcher
5+
class AsyncEventDispatcher extends AbstractAsyncEventDispatcher
6+
{
7+
public function dispatch(object $event, string $eventName = null): object
128
{
13-
/**
14-
* {@inheritdoc}
15-
*/
16-
public function dispatch($event, $eventName = null)
17-
{
18-
$this->parentDispatch($event, $eventName);
19-
20-
return $this->trueEventDispatcher->dispatch($event, $eventName);
21-
}
9+
$this->parentDispatch($event, $eventName);
2210

23-
protected function parentDispatch($event, $eventName)
24-
{
25-
parent::dispatch($event, $eventName);
26-
}
11+
return $this->trueEventDispatcher->dispatch($event, $eventName);
2712
}
28-
} else {
29-
/**
30-
* Symfony >= 5.0.
31-
*/
32-
class AsyncEventDispatcher extends AbstractAsyncEventDispatcher
33-
{
34-
/**
35-
* {@inheritdoc}
36-
*/
37-
public function dispatch(object $event, string $eventName = null): object
38-
{
39-
$this->parentDispatch($event, $eventName);
4013

41-
return $this->trueEventDispatcher->dispatch($event, $eventName);
42-
}
43-
44-
protected function parentDispatch($event, $eventName)
45-
{
46-
return parent::dispatch($event, $eventName);
47-
}
14+
protected function parentDispatch($event, $eventName)
15+
{
16+
return parent::dispatch($event, $eventName);
4817
}
4918
}

Diff for: pkg/async-event-dispatcher/AsyncListener.php

+14-52
Original file line numberDiff line numberDiff line change
@@ -2,66 +2,28 @@
22

33
namespace Enqueue\AsyncEventDispatcher;
44

5-
use Symfony\Component\EventDispatcher\Event;
6-
use Symfony\Contracts\EventDispatcher\Event as ContractEvent;
5+
use Symfony\Contracts\EventDispatcher\Event;
76

8-
if (class_exists(Event::class)) {
9-
/**
10-
* Symfony < 5.0.
11-
*/
12-
class AsyncListener extends AbstractAsyncListener
7+
class AsyncListener extends AbstractAsyncListener
8+
{
9+
public function __invoke(Event $event, $eventName)
1310
{
14-
/**
15-
* @param Event|ContractEvent $event
16-
* @param string $eventName
17-
*/
18-
public function __invoke($event, $eventName)
19-
{
20-
$this->onEvent($event, $eventName);
21-
}
22-
23-
/**
24-
* @param Event|ContractEvent $event
25-
* @param string $eventName
26-
*/
27-
public function onEvent($event, $eventName)
28-
{
29-
if (false == isset($this->syncMode[$eventName])) {
30-
$transformerName = $this->registry->getTransformerNameForEvent($eventName);
31-
32-
$message = $this->registry->getTransformer($transformerName)->toMessage($eventName, $event);
33-
$message->setProperty('event_name', $eventName);
34-
$message->setProperty('transformer_name', $transformerName);
35-
36-
$this->context->createProducer()->send($this->eventQueue, $message);
37-
}
38-
}
11+
$this->onEvent($event, $eventName);
3912
}
40-
} else {
13+
4114
/**
42-
* Symfony >= 5.0.
15+
* @param string $eventName
4316
*/
44-
class AsyncListener extends AbstractAsyncListener
17+
public function onEvent(Event $event, $eventName)
4518
{
46-
public function __invoke(ContractEvent $event, $eventName)
47-
{
48-
$this->onEvent($event, $eventName);
49-
}
50-
51-
/**
52-
* @param string $eventName
53-
*/
54-
public function onEvent(ContractEvent $event, $eventName)
55-
{
56-
if (false == isset($this->syncMode[$eventName])) {
57-
$transformerName = $this->registry->getTransformerNameForEvent($eventName);
19+
if (false == isset($this->syncMode[$eventName])) {
20+
$transformerName = $this->registry->getTransformerNameForEvent($eventName);
5821

59-
$message = $this->registry->getTransformer($transformerName)->toMessage($eventName, $event);
60-
$message->setProperty('event_name', $eventName);
61-
$message->setProperty('transformer_name', $transformerName);
22+
$message = $this->registry->getTransformer($transformerName)->toMessage($eventName, $event);
23+
$message->setProperty('event_name', $eventName);
24+
$message->setProperty('transformer_name', $transformerName);
6225

63-
$this->context->createProducer()->send($this->eventQueue, $message);
64-
}
26+
$this->context->createProducer()->send($this->eventQueue, $message);
6527
}
6628
}
6729
}

0 commit comments

Comments
 (0)