From e85151483ccd9e2c002ba8e6808d3598056a5851 Mon Sep 17 00:00:00 2001 From: andrey1s Date: Mon, 5 Mar 2018 11:57:35 +0300 Subject: [PATCH] [Config] ReflectionClassResource check abstract ServiceSubscriberInterface and EventSubscriberInterface --- .../Component/Config/Resource/ReflectionClassResource.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Config/Resource/ReflectionClassResource.php b/src/Symfony/Component/Config/Resource/ReflectionClassResource.php index 149789aa367d..822b78568d3b 100644 --- a/src/Symfony/Component/Config/Resource/ReflectionClassResource.php +++ b/src/Symfony/Component/Config/Resource/ReflectionClassResource.php @@ -155,12 +155,16 @@ private function generateSignature(\ReflectionClass $class) } } - if ($class->isSubclassOf(EventSubscriberInterface::class)) { + if ($class->isAbstract() || $class->isInterface() || $class->isTrait()) { + return; + } + + if (interface_exists(EventSubscriberInterface::class, false) && $class->isSubclassOf(EventSubscriberInterface::class)) { yield EventSubscriberInterface::class; yield print_r(\call_user_func(array($class->name, 'getSubscribedEvents')), true); } - if ($class->isSubclassOf(ServiceSubscriberInterface::class)) { + if (interface_exists(ServiceSubscriberInterface::class, false) && $class->isSubclassOf(ServiceSubscriberInterface::class)) { yield ServiceSubscriberInterface::class; yield print_r(\call_user_func(array($class->name, 'getSubscribedServices')), true); }