vendor/sksso/http-integration/src/SKSSOHTTPIntegrationBundle.php line 20

  1. <?php
  2. namespace SKSSO\HTTP\Bundle\IntegrationBundle;
  3. use SKSSO\HTTP\Bundle\BaseBundle\ApiResponseTokenGeneratorInterface;
  4. use SKSSO\HTTP\Bundle\BaseBundle\MessageReceiverControllerInterface;
  5. use SKSSO\HTTP\Bundle\BaseBundle\MessageRetreiverControllerInterface;
  6. use SKSSO\HTTP\Bundle\IntegrationBundle\DependencyInjection\CompilerPass\ApiResponseTokenGeneratorCollectionPass;
  7. use SKSSO\HTTP\Bundle\IntegrationBundle\DependencyInjection\CompilerPass\MessageReceiverCollectionPass;
  8. use SKSSO\HTTP\Bundle\IntegrationBundle\DependencyInjection\CompilerPass\MessageRetreiverCollectionPass;
  9. use SKSSO\HTTP\Bundle\IntegrationBundle\DependencyInjection\CompilerPass\StorageCollectionPass;
  10. use SKSSO\StorageBase\StorageInterfaceWithMetadata;
  11. use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator;
  12. use Symfony\Component\Config\FileLocator;
  13. use Symfony\Component\DependencyInjection\ContainerBuilder;
  14. use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
  15. use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
  16. use Symfony\Component\HttpKernel\Bundle\AbstractBundle;
  17. class SKSSOHTTPIntegrationBundle extends AbstractBundle
  18. {
  19.     protected string $extensionAlias 'http_integration';
  20.     public function build(ContainerBuilder $container)
  21.     {
  22.         $container->addCompilerPass(new MessageRetreiverCollectionPass());
  23.         $container->addCompilerPass(new MessageReceiverCollectionPass());
  24.         $container->addCompilerPass(new StorageCollectionPass());
  25.         $container->addCompilerPass(new ApiResponseTokenGeneratorCollectionPass());
  26.     }
  27.     public function configure(DefinitionConfigurator $definition): void
  28.     {
  29.         $definition
  30.             ->rootNode()
  31.                 ->children()
  32.                     ->scalarNode('prefix')
  33.                         ->defaultValue('/api/sksso')
  34.                         ->validate()
  35.                             ->ifTrue(function ($value) { return gettype($value) != "string"; })
  36.                             ->thenInvalid("The prefix must be a string")
  37.                         ->end()
  38.                     ->end()
  39.                 ->end()
  40.             ->end();
  41.     }
  42.     public function loadExtension(array $configContainerConfigurator $containerContainerBuilder $builder): void
  43.     {
  44.         $loader = new YamlFileLoader(
  45.             $builder,
  46.             new FileLocator(__DIR__ '/Resources/config')
  47.         );
  48.         $loader->load('services.yaml');
  49.         $builder->registerForAutoconfiguration(MessageRetreiverControllerInterface::class)
  50.                 ->addTag('sksso.http.integration.retriever_controller_collection');
  51.         $builder->registerForAutoconfiguration(MessageReceiverControllerInterface::class)
  52.                 ->addTag('sksso.http.integration.receiver_controller_collection');
  53.         $builder->registerForAutoconfiguration(StorageInterfaceWithMetadata::class)
  54.                 ->addTag('sksso.http.integration.storage_storage_collection');
  55.         $builder->registerForAutoconfiguration(ApiResponseTokenGeneratorInterface::class)
  56.                 ->addTag('sksso.http.integration.api_response_token_generator_collection');
  57.     }
  58. }