Symfony2:覆盖Sensio FrameworkExtraBundle模板猜测器

时间:2014-03-13 09:53:21

标签: symfony

我试图覆盖标准模板guesser(位于Sensio \ Bundle \ FrameworkExtraBundle \ Templating;)因为我想使用注释来设置视图,但需要更改实际视图文件的选择逻辑。 / p>

我见过这个:https://github.com/elnur/ElnurTemplateGuesserBundle 但我想知道是否有办法在配置中覆盖服务。

我尝试过设置:

services:
    sensio_framework_extra.view.guesser:
        class: myCompany\myBundle\Templating\TemplateGuesser

但我明白了:

ContextErrorException: Catchable Fatal Error: 
Argument 1 passed to Sensio\Bundle\FrameworkExtraBundle\Templating\TemplateGuesser::__construct()  
must implement interface Symfony\Component\HttpKernel\KernelInterface, none given

我应该在服务配置设置中设置一个参数吗?但是我如何引用HttpKernel呢? 或者我错过了什么? TIA。

1 个答案:

答案 0 :(得分:0)

您可以注入内核same way the as the original TemplateGuesser。内核服务的名称只是kernel

services:
    sensio_framework_extra.view.guesser:
        class:     myCompany\myBundle\Templating\TemplateGuesser
        arguments: [ "@kernel" ]

要查看容器中的完整服务列表,请运行

$ php app/console container:debug

其中您将kernel列为其中之一。