我的Symfony2应用程序中已有一个已经运行的Twig扩展程序:
namespace Company\MyBundle\Service;
class MyExtension extends \Twig_Extension
{
// ...
}
我现在想要创建一个Twig函数,它本身需要一些数据并呈现一个部分模板。但我的问题是:如何在我的twig扩展服务中获得一个新的模板实例?
这是我当前的配置:
services:
twig.extension.my_extensions:
class: Company\MyBundle\Service\TwigExtension
tags:
- { name: twig.extension }
如果我现在将arguments: [@templating]
添加到配置中,我会得到(可理解的)循环引用异常。
答案 0 :(得分:1)
似乎推荐的simple ways之一是直接注入容器并从那里检索模板引擎。正如您所见,直接在模板引擎中注入会导致循环引用异常。
所以,注入@service_container
你应该是好的。这似乎是诸如FOSFacebookBundle之类的捆绑包所采用的方法。