на основе ЭТОГО вопроса
Мне нужно хранить пароль БД в parameters.yml
в зашифрованном виде.Я нашел похожий вопрос и попытался пропустить свой собственный компилятор и зарегистрировал его. Код выглядит следующим образом:
<?php
namespace AppBundle\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class ParametersCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$container->setParameter('database_password', 'my_pass');//setting the updated value for DB password
var_dump($container->getParameter('database_password'));//here updated password is produced
}
}
Регистрация пропуска в AppBundle
:
public function build(ContainerBuilder $container)
{
parent::build($container);
$container->addCompilerPass(new ParametersCompilerPass(), PassConfig::TYPE_AFTER_REMOVING);
}
выполняется код, и в моей функции отладки var_dump
я вижу обновленный проход для моей БД, но для фактического соединения используется значение, хранящееся в parameters.yml
, что неверно, и соединение с БД не устанавливается.Есть идеи как это исправить?Спасибо.