for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace NV\RequestLimitBundle\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class StoragePass implements CompilerPassInterface
{
/**
* @param ContainerBuilder $container
*/
public function process(ContainerBuilder $container)
$providerType = $container->getParameter('nv_request_limit.provider_type');
$providerConfiguration = $container->getParameter('nv_request_limit.provider_configuration');
$providerTypeServiceName = sprintf('nv.request_limit.%s.provider', $providerType);
$providerDefinition = $container->getDefinition($providerTypeServiceName);
$providerDefinition->addMethodCall('configure', [$providerConfiguration]);
$storageManagerDefinition = $container->getDefinition('nv.request_limit.storage_manager');
$storageManagerDefinition->addMethodCall('setProvider', [$providerDefinition]);
}