Symfony2:如何在Twig扩展中呈现部分

时间:2012-03-07 10:04:14

标签: php symfony twig

我的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]添加到配置中,我会得到(可理解的)循环引用异常。

1 个答案:

答案 0 :(得分:1)

似乎推荐的simple ways之一是直接注入容器并从那里检索模板引擎。正如您所见,直接在模板引擎中注入会导致循环引用异常。

所以,注入@service_container你应该是好的。这似乎是诸如FOSFacebookBundle之类的捆绑包所采用的方法。