AuthenticationProviderPass.php 916 B

123456789101112131415161718192021222324252627
  1. <?php
  2. namespace Drupal\Core\DependencyInjection\Compiler;
  3. use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
  4. use Symfony\Component\DependencyInjection\ContainerBuilder;
  5. /**
  6. * Registers the authentication_providers container parameter.
  7. */
  8. class AuthenticationProviderPass implements CompilerPassInterface {
  9. /**
  10. * {@inheritdoc}
  11. */
  12. public function process(ContainerBuilder $container) {
  13. $authentication_providers = [];
  14. foreach ($container->findTaggedServiceIds('authentication_provider') as $service_id => $attributes) {
  15. $authentication_provider = $attributes[0]['provider_id'];
  16. if ($provider_tag = $container->getDefinition($service_id)->getTag('_provider')) {
  17. $authentication_providers[$authentication_provider] = $provider_tag[0]['provider'];
  18. }
  19. }
  20. $container->setParameter('authentication_providers', $authentication_providers);
  21. }
  22. }