Como posso definir dinamicamente um parâmetro no Symfony2?
Estou tentando definir dinamicamente um parâmetro no Symfony2 (que não posso definir estaticamente no meuparameters.yml
Arquivo). Minha abordagem é usar umEventListener
:
namespace Acme\AcmeBundle\EventListener;
use Symfony\Component\DependencyInjection\Container;
class AcmeListener
{
private $container;
public function __construct(Container $container)
{
$this->container = $container;
}
public function onKernelRequest()
{
// Dynamically fetch $bar
$bar = fetch('foobar');
// Set parameter
$this->container->setParameter('foo', $bar);
}
}
E minha definição de serviço emconfig.yml
se parece com isso:
service:
kernel.listener.acme_listener:
class: Acme\AcmeBundle\EventListener\AcmeListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
arguments: [ '@service_container' ]
O problema é que recebo uma exceção:
LogicException: Impossível chamar set () em um ParameterBag congelado.
Como solucionar essa exceção ou você vê outra maneira de definir dinamicamente um parâmetro?