Elcodi\Common\FirewallBundle\CompilerPass\FirewallCompilerPass::collectListenersByProviderKey PHP Method

collectListenersByProviderKey() private method

Group listeners by provider key, type and priority (when needed)
private collectListenersByProviderKey ( ContainerBuilder $container ) : array
$container Symfony\Component\DependencyInjection\ContainerBuilder Container to search services
return array
    private function collectListenersByProviderKey(ContainerBuilder $container)
    {
        $providerKeys = [];
        $taggedListeners = $container->findTaggedServiceIds($this->tagName);
        foreach ($taggedListeners as $listenerId => $tags) {
            foreach ($tags as $tag) {
                $providerKey = $this->getProviderKey($container, $tag, $listenerId);
                $priority = isset($tag['priority']) ? $tag['priority'] : 0;
                if (isset($tag['event'])) {
                    $listener = $this->processEvent($container, $listenerId, $tag, $priority);
                    $providerKeys[$providerKey]['event'][] = $listener;
                } elseif (isset($tag['method'])) {
                    throw new \InvalidArgumentException(sprintf('The "method" attribute does nothing in "%s" tags if "event" is not set in "%s" definition.', $this->tagName, $listenerId));
                } else {
                    $providerKeys[$providerKey]['firewall'][$priority][] = new Reference($listenerId);
                }
            }
        }
        return $providerKeys;
    }