是否可以创建多个 Twig 扩展?因为当我添加第二个时,我收到第一个扩展方法在第二个扩展中不存在的错误消息。
以下是我的扩展在 services.xml 中的定义方式:
<service id="acme.extension.view_helper" class="FLS\AcmeBundle\Extension\ViewHelperExtension">
<argument type="service" id="doctrine.orm.entity_manager" />
<tag name="twig.extension" />
</service>
<service id="acme.extension.stats_helper" class="FLS\AcmeBundle\Extension\StatsExtension">
<argument type="service" id="doctrine.orm.entity_manager" />
<tag name="twig.extension" />
</service>
这是错误消息:
Fatal error: Call to undefined method FLS\AcmeBundle\Extension\StatsExtension::findTask() in F:\www\AcmeBundle\app\cache\dev\twig\fe\fd\4ff31bf8efd0669b6d0b2a14ba11.php on line 232
findTask 方法在 ViewHelperExtension 中定义。
提前致谢!
最佳答案
编辑:TL;博士。是的。有可能
我现在才遇到这个问题。就我而言,原因是我开始使用相同的样板文件来处理扩展和 getName()
。每个内部的函数都返回相同的名称。
一旦我更改了函数在每个扩展上返回的名称,两个扩展都被添加了。我假设类似以下内容会起作用:
在 src/AppBundle/Twig/AppBundleFooExtension.php
/* ... */
public function getName()
{
return 'appbundle_foo_extension';
}
/* ... */
在 src/AppBundle/Twig/AppBundleBarExtension.php
/* ... */
public function getName()
{
return 'appbundle_bar_extension';
}
/* ... */
关于Symfony2 多枝扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14329542/