我想覆盖twig函数include
和extend
。
原因是我的包提供了几个完全不同的主题,但文件名和树结构总是相同的。
E.g。当主题设置为 bootstrap 且所需文件名为@ACMEBundle/index.html.twig
时,应将其转换为@ACMEBundle/theme_bootstrap/index.html.twig
如果主题是' ui'最后的名字是@ACMEBundle/theme_ui/index.html.twig
。
我在这里看到2个解决方案:
完全覆盖extends
和include
,以便我像{% '@ACMEBundle/index.html.twig' %}
创建新的extends_theme_aware
和include_theme_aware
函数,这些函数会转换模板的名称并使用本机函数来完成工作。
我怎样才能实现这个目标?
感谢。