Skip to content

Commit 5455fc0

Browse files
Merge branch '4.2' into 4.3
* 4.2: minor: add some test in the ldap component [Bridge\ProxyManager] isProxyCandidate() does not take into account interfaces [Routing][AnnotationClassLoader] fix utf-8 encoding in default route name fixed a phpdoc [Debug] Wrap call to require_once in a try/catch prevent deprecation when filesize matches error code [PropertyInfo] Add missing documentation link in Readme Use the current working dir as default first arg in 'link' binary Respect parent class contract in ContainerAwareDoctrineEventManager [Validator] Add the missing translations for the Danish ("da") locale [PropertyAccess] Add missing property to PropertyAccessor [Cache] fix saving unrelated keys in recursive callback calls [Serializer] Fix denormalization of object with variadic constructor typed argument Allow set 'None' on samesite cookie flag Making cache rebuild correctly with MessageSubscriberInterface return values Fix finding parent definition
2 parents ce7d0c7 + 6bec769 commit 5455fc0

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

Resource/ReflectionClassResource.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use Symfony\Component\DependencyInjection\ServiceSubscriberInterface as LegacyServiceSubscriberInterface;
1515
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
16+
use Symfony\Component\Messenger\Handler\MessageSubscriberInterface;
1617
use Symfony\Contracts\Service\ServiceSubscriberInterface;
1718

1819
/**
@@ -158,6 +159,13 @@ private function generateSignature(\ReflectionClass $class)
158159
yield print_r($class->name::getSubscribedEvents(), true);
159160
}
160161

162+
if (interface_exists(MessageSubscriberInterface::class, false) && $class->isSubclassOf(MessageSubscriberInterface::class)) {
163+
yield MessageSubscriberInterface::class;
164+
foreach ($class->name::getHandledMessages() as $key => $value) {
165+
yield $key.print_r($value, true);
166+
}
167+
}
168+
161169
if (interface_exists(LegacyServiceSubscriberInterface::class, false) && $class->isSubclassOf(LegacyServiceSubscriberInterface::class)) {
162170
yield LegacyServiceSubscriberInterface::class;
163171
yield print_r([$class->name, 'getSubscribedServices'](), true);

Tests/Resource/ReflectionClassResourceTest.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Symfony\Component\Config\Resource\ReflectionClassResource;
1616
use Symfony\Component\DependencyInjection\ServiceSubscriberInterface;
1717
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
18+
use Symfony\Component\Messenger\Handler\MessageSubscriberInterface;
1819

1920
class ReflectionClassResourceTest extends TestCase
2021
{
@@ -147,6 +148,24 @@ public function testEventSubscriber()
147148
$this->assertTrue($res->isFresh(0));
148149
}
149150

151+
public function testMessageSubscriber()
152+
{
153+
$res = new ReflectionClassResource(new \ReflectionClass(TestMessageSubscriber::class));
154+
$this->assertTrue($res->isFresh(0));
155+
156+
TestMessageSubscriberConfigHolder::$handledMessages = ['SomeMessageClass' => []];
157+
$this->assertFalse($res->isFresh(0));
158+
159+
$res = new ReflectionClassResource(new \ReflectionClass(TestMessageSubscriber::class));
160+
$this->assertTrue($res->isFresh(0));
161+
162+
TestMessageSubscriberConfigHolder::$handledMessages = ['OtherMessageClass' => []];
163+
$this->assertFalse($res->isFresh(0));
164+
165+
$res = new ReflectionClassResource(new \ReflectionClass(TestMessageSubscriber::class));
166+
$this->assertTrue($res->isFresh(0));
167+
}
168+
150169
public function testServiceSubscriber()
151170
{
152171
$res = new ReflectionClassResource(new \ReflectionClass(TestServiceSubscriber::class));
@@ -174,6 +193,20 @@ public static function getSubscribedEvents()
174193
}
175194
}
176195

196+
class TestMessageSubscriber implements MessageSubscriberInterface
197+
{
198+
public static function getHandledMessages(): iterable
199+
{
200+
foreach (TestMessageSubscriberConfigHolder::$handledMessages as $key => $subscribedMessage) {
201+
yield $key => $subscribedMessage;
202+
}
203+
}
204+
}
205+
class TestMessageSubscriberConfigHolder
206+
{
207+
public static $handledMessages = [];
208+
}
209+
177210
class TestServiceSubscriber implements ServiceSubscriberInterface
178211
{
179212
public static $subscribedServices = [];

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"symfony/dependency-injection": "~3.4|~4.0",
2525
"symfony/event-dispatcher": "~3.4|~4.0",
2626
"symfony/finder": "~3.4|~4.0",
27+
"symfony/messenger": "~4.1",
2728
"symfony/yaml": "~3.4|~4.0"
2829
},
2930
"conflict": {

0 commit comments

Comments
 (0)