Pārlūkot izejas kodu

Merge pull request #198 from emgiezet/master

PHP 5.3.6 Bug Resolved
Johannes 12 gadi atpakaļ
vecāks
revīzija
fc1f3400b7

+ 7 - 3
DependencyInjection/Compiler/RegisterEventListenersAndSubscribersPass.php

@@ -3,6 +3,7 @@
 namespace JMS\SerializerBundle\DependencyInjection\Compiler;
 
 use JMS\SerializerBundle\Serializer\EventDispatcher\EventDispatcher;
+use JMS\SerializerBundle\Serializer\EventDispatcher\EventSubscriberInterface;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
 
@@ -31,9 +32,12 @@ class RegisterEventListenersAndSubscribersPass implements CompilerPassInterface
         }
 
         foreach ($container->findTaggedServiceIds('jms_serializer.event_subscriber') as $id => $tags) {
-            $subscriberDefinition = $container->getDefinition($id);
-            $subscriberClass = $subscriberDefinition->getClass();
-            if ( ! is_subclass_of($subscriberClass, 'JMS\SerializerBundle\Serializer\EventDispatcher\EventSubscriberInterface')) {
+            $subscriberDefinition = $container->getDefinition($id);
+            $subscriberClass = $container->getDefinition($id)->getClass();
+            
+            $subscriberClassReflectionObj = new \ReflectionClass($subscriberClass);
+            
+            if ( ! $subscriberClassReflectionObj->implementsInterface('JMS\SerializerBundle\Serializer\EventDispatcher\EventSubscriberInterface') ) {
                 throw new \RuntimeException(sprintf('The service "%s" (class: %s) does not implement the EventSubscriberInterface.', $id, $subscriberClass));
             }