vendor/sksso/http-integration/src/SKSSOHTTPIntegrationBundle.php line 20
<?php
namespace SKSSO\HTTP\Bundle\IntegrationBundle;
use SKSSO\HTTP\Bundle\BaseBundle\ApiResponseTokenGeneratorInterface;
use SKSSO\HTTP\Bundle\BaseBundle\MessageReceiverControllerInterface;
use SKSSO\HTTP\Bundle\BaseBundle\MessageRetreiverControllerInterface;
use SKSSO\HTTP\Bundle\IntegrationBundle\DependencyInjection\CompilerPass\ApiResponseTokenGeneratorCollectionPass;
use SKSSO\HTTP\Bundle\IntegrationBundle\DependencyInjection\CompilerPass\MessageReceiverCollectionPass;
use SKSSO\HTTP\Bundle\IntegrationBundle\DependencyInjection\CompilerPass\MessageRetreiverCollectionPass;
use SKSSO\HTTP\Bundle\IntegrationBundle\DependencyInjection\CompilerPass\StorageCollectionPass;
use SKSSO\StorageBase\StorageInterfaceWithMetadata;
use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Symfony\Component\HttpKernel\Bundle\AbstractBundle;
class SKSSOHTTPIntegrationBundle extends AbstractBundle
{
protected string $extensionAlias = 'http_integration';
public function build(ContainerBuilder $container)
{
$container->addCompilerPass(new MessageRetreiverCollectionPass());
$container->addCompilerPass(new MessageReceiverCollectionPass());
$container->addCompilerPass(new StorageCollectionPass());
$container->addCompilerPass(new ApiResponseTokenGeneratorCollectionPass());
}
public function configure(DefinitionConfigurator $definition): void
{
$definition
->rootNode()
->children()
->scalarNode('prefix')
->defaultValue('/api/sksso')
->validate()
->ifTrue(function ($value) { return gettype($value) != "string"; })
->thenInvalid("The prefix must be a string")
->end()
->end()
->end()
->end();
}
public function loadExtension(array $config, ContainerConfigurator $container, ContainerBuilder $builder): void
{
$loader = new YamlFileLoader(
$builder,
new FileLocator(__DIR__ . '/Resources/config')
);
$loader->load('services.yaml');
$builder->registerForAutoconfiguration(MessageRetreiverControllerInterface::class)
->addTag('sksso.http.integration.retriever_controller_collection');
$builder->registerForAutoconfiguration(MessageReceiverControllerInterface::class)
->addTag('sksso.http.integration.receiver_controller_collection');
$builder->registerForAutoconfiguration(StorageInterfaceWithMetadata::class)
->addTag('sksso.http.integration.storage_storage_collection');
$builder->registerForAutoconfiguration(ApiResponseTokenGeneratorInterface::class)
->addTag('sksso.http.integration.api_response_token_generator_collection');
}
}