Skip to content

Commit e82d4ae

Browse files
committed
Drop Symfony < 5.1 🔥
1 parent 8f0bcd6 commit e82d4ae

20 files changed

+151
-395
lines changed

.github/workflows/ci.yml

+2-6
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,9 @@ jobs:
7878
fail-fast: false
7979
matrix:
8080
php: ['7.3', '7.4', '8.0']
81-
symfony_version: ['4.4.*', '5.2.*', '6.0.*']
81+
symfony_version: ['5.2.*', '6.0.*']
8282
dependencies: ['--prefer-lowest', '--prefer-dist']
8383
exclude:
84-
- php: '8.0'
85-
symfony_version: '4.4.*'
8684
- php: '7.3'
8785
symfony_version: '6.0.*'
8886
- php: '7.4'
@@ -126,12 +124,10 @@ jobs:
126124
fail-fast: false
127125
matrix:
128126
php: ['7.4', '8.0'] # same as in the container
129-
symfony_version: ['4.4.*', '5.2.*', '6.0.*']
127+
symfony_version: ['5.2.*', '6.0.*']
130128
dependencies: ['--prefer-lowest', '--prefer-dist']
131129
rdkafka_action: ['exclude-group', 'group']
132130
exclude:
133-
- php: '8.0'
134-
symfony_version: '4.4.*'
135131
- php: '7.3'
136132
symfony_version: '6.0.*'
137133
- php: '7.4'

composer.json

+11-11
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,17 @@
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|^6.0",
57-
"symfony/config": "^4.3|^5|^6.0",
58-
"symfony/process": "^4.3|^5|^6.0",
59-
"symfony/console": "^4.3|^5|^6.0",
60-
"symfony/dependency-injection": "^4.3|^5|^6.0",
61-
"symfony/event-dispatcher": "^4.3|^5|^6.0",
62-
"symfony/expression-language": "^4.3|^5|^6.0",
63-
"symfony/http-kernel": "^4.3|^5|^6.0",
64-
"symfony/filesystem": "^4.3|^5|^6.0",
65-
"symfony/framework-bundle": "^4.3|^5|^6.0",
66-
"symfony/yaml": "^4.3|^5|^6.0",
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",

docs/bundle/async_events.md

+1-1
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` (every version) and `dispatcher: 'enqueue.events.event_dispatcher'` (since Symfony 5.3) attributes 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

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|^6.0",
13-
"symfony/process": "^4.3|^5|^6.0"
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|^6.0",
18-
"symfony/config": "^4.3|^5|^6.0",
19-
"symfony/http-kernel": "^4.3|^5|^6.0",
20-
"symfony/filesystem": "^4.3|^5|^6.0",
21-
"symfony/yaml": "^4.3|^5|^6.0",
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|^6.0 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\\": "" },

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
}

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
}

pkg/async-event-dispatcher/DependencyInjection/AsyncEventsPass.php

+14-42
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ public function process(ContainerBuilder $container): void
2222

2323
$defaultClient = $container->getParameter('enqueue.default_client');
2424

25-
// TODO: Remove when dropping Symfony < 5.3
26-
$useLegacyDispatcherConfig = (Kernel::VERSION_ID < 50300);
27-
2825
$registeredToEvent = [];
2926
foreach ($container->findTaggedServiceIds('kernel.event_listener') as $serviceId => $tagAttributes) {
3027
foreach ($tagAttributes as $tagAttribute) {
@@ -34,13 +31,6 @@ public function process(ContainerBuilder $container): void
3431

3532
$event = $tagAttribute['event'];
3633

37-
$service = $container->getDefinition($serviceId);
38-
39-
if ($useLegacyDispatcherConfig) {
40-
$service->clearTag('kernel.event_listener');
41-
$service->addTag('enqueue.async_event_listener', $tagAttribute);
42-
}
43-
4434
if (false == isset($registeredToEvent[$event])) {
4535
$container->getDefinition('enqueue.events.async_listener')
4636
->addTag('kernel.event_listener', [
@@ -49,15 +39,13 @@ public function process(ContainerBuilder $container): void
4939
])
5040
;
5141

52-
if (!$useLegacyDispatcherConfig) {
53-
$container->getDefinition('enqueue.events.async_listener')
54-
->addTag('kernel.event_listener', [
55-
'event' => $event,
56-
'method' => 'onEvent',
57-
'dispatcher' => 'enqueue.events.event_dispatcher',
58-
])
59-
;
60-
}
42+
$container->getDefinition('enqueue.events.async_listener')
43+
->addTag('kernel.event_listener', [
44+
'event' => $event,
45+
'method' => 'onEvent',
46+
'dispatcher' => 'enqueue.events.event_dispatcher',
47+
])
48+
;
6149

6250
$container->getDefinition('enqueue.events.async_processor')
6351
->addTag('enqueue.processor', [
@@ -79,11 +67,6 @@ public function process(ContainerBuilder $container): void
7967

8068
$service = $container->getDefinition($serviceId);
8169

82-
if ($useLegacyDispatcherConfig) {
83-
$service->clearTag('kernel.event_subscriber');
84-
$service->addTag('enqueue.async_event_subscriber', $tagAttribute);
85-
}
86-
8770
/** @var EventSubscriberInterface $serviceClass */
8871
$serviceClass = $service->getClass();
8972

@@ -96,15 +79,13 @@ public function process(ContainerBuilder $container): void
9679
])
9780
;
9881

99-
if (!$useLegacyDispatcherConfig) {
100-
$container->getDefinition('enqueue.events.async_listener')
101-
->addTag('kernel.event_listener', [
102-
'event' => $event,
103-
'method' => 'onEvent',
104-
'dispatcher' => 'enqueue.events.event_dispatcher',
105-
])
106-
;
107-
}
82+
$container->getDefinition('enqueue.events.async_listener')
83+
->addTag('kernel.event_listener', [
84+
'event' => $event,
85+
'method' => 'onEvent',
86+
'dispatcher' => 'enqueue.events.event_dispatcher',
87+
])
88+
;
10889

10990
$container->getDefinition('enqueue.events.async_processor')
11091
->addTag('enqueue.processor', [
@@ -118,14 +99,5 @@ public function process(ContainerBuilder $container): void
11899
}
119100
}
120101
}
121-
122-
if ($useLegacyDispatcherConfig) {
123-
$registerListenersPass = new RegisterListenersPass(
124-
'enqueue.events.event_dispatcher',
125-
'enqueue.async_event_listener',
126-
'enqueue.async_event_subscriber'
127-
);
128-
$registerListenersPass->process($container);
129-
}
130102
}
131103
}

0 commit comments

Comments
 (0)