Symfony 2:Doctrine Cache命名空间

时间:2014-02-27 16:01:09

标签: php symfony caching doctrine-orm namespaces

doctrine:
    orm:
        metadata_cache_driver:
            type: xcache
            namespace: %foobar%

嗨,我想通过像%foobar%这样的参数设置doctrine缓存命名空间。参数%foobar%将通过compilerPass

设置
class FoobarCompiler implements CompilerPassInterface {
    public function process(ContainerBuilder $container) {
        $container->setParameter('foobar', uniqid());
    }
}

并且此compilerPass通过以下方式在bundle类中注册:

public function build(\Symfony\Component\DependencyInjection\ContainerBuilder $container) {
    $container->addCompilerPass(new \FQNS\Compiler\FoobarCompiler());
}

但是我收到了这个错误:

  

[Symfony的\元器件\ DependencyInjection \异常\ ParameterNotFoundException]    您已请求不存在的参数“foobar”。

任何想法如何通过此参数“foobar”设置doctrine缓存命名空间?

greez&谢谢,   天空...

1 个答案:

答案 0 :(得分:2)

答案就是这个片段:

class FoobarExtension extends Extension implements PrependExtensionInterface {

    ...

    public function prepend(ContainerBuilder $container) {
        $container->setParameter('foobar', uniqid());
    }
}

添加“PrependExtension接口”界面非常重要!

greez& thx,sky ...