|
@@ -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));
|
|
|
}
|
|
|
|