3 namespace Drupal\DrupalExtension\Compiler;
5 use Symfony\Component\DependencyInjection\Reference,
6 Symfony\Component\DependencyInjection\ContainerBuilder,
7 Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
10 * Event subscribers pass - registers all available event subscribers.
12 class EventSubscriberPass implements CompilerPassInterface {
14 * Processes container.
16 * @param ContainerBuilder $container
18 public function process(ContainerBuilder $container) {
19 if (!$container->hasDefinition('drupal.event_dispatcher')) {
22 $dispatcherDefinition = $container->getDefinition('drupal.event_dispatcher');
24 foreach ($container->findTaggedServiceIds('drupal.event_subscriber') as $id => $attributes) {
25 foreach ($attributes as $attribute) {
26 $priority = isset($attribute['priority']) ? intval($attribute['priority']) : 0;
27 $dispatcherDefinition->addMethodCall(
28 'addSubscriber', array(new Reference($id), $priority)