我试图覆盖标准模板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。
答案 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
列为其中之一。