Symfony 覆盖另一个包的参数
我正在构建一个包,它依赖于另一个包。父捆绑包加载services.yml文件,该文件定义了一些参数:Symfony 覆盖另一个包的参数,symfony,Symfony,我正在构建一个包,它依赖于另一个包。父捆绑包加载services.yml文件,该文件定义了一些参数: parameters: xbundle.doctrine.factory: Doctrine\ORM\Repository\DefaultRepositoryFactory services: .... 我知道xbundle.doctrine.factory参数可以从app/config/config.yml更改,但我想从自定义子包中更改其值。I,以及建议的stackoverf
parameters:
xbundle.doctrine.factory: Doctrine\ORM\Repository\DefaultRepositoryFactory
services:
....
我知道xbundle.doctrine.factory参数可以从app/config/config.yml更改,但我想从自定义子包中更改其值。I,以及建议的stackoverflow问题,但仍然无法确定如何实现它。您必须在子捆绑包中编写编译器类,并更改值:
// src/Acme/DemoBundle/DependencyInjection/Compiler/OverrideServiceCompilerPass.php
namespace Acme\DemoBundle\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class OverrideServiceCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$container->setParameter('xbundle.doctrine.factory', '..New Value ...');
}
}
一些文档。我手头没有示例,但我怀疑您需要一个编译器密码:。但是,除非您真的知道自己在做什么,否则不要试图覆盖默认的条令存储库工厂。很可能您可以使用条令事件侦听器。