Php 如何覆盖细枝本机函数?

Php 如何覆盖细枝本机函数?,php,symfony,twig,Php,Symfony,Twig,我想覆盖细枝函数包括和扩展 原因是我的bundle提供了几个完全不同的主题,但是文件名和树结构总是相同的 例如,当主题设置为bootstrap且所需文件名为@ACMEBundle/index.html.twig时,应将其转换为@ACMEBundle/theme\u bootstrap/index.html.twig 如果主题是“ui”,那么最终名称是@ACMEBundle/theme\u ui/index.html.twig 我在这里看到两种解决方案: 完全覆盖扩展和包含,以便像{%'@ACME

我想覆盖细枝函数
包括
扩展

原因是我的bundle提供了几个完全不同的主题,但是文件名和树结构总是相同的

例如,当主题设置为bootstrap且所需文件名为
@ACMEBundle/index.html.twig
时,应将其转换为
@ACMEBundle/theme\u bootstrap/index.html.twig

如果主题是“ui”,那么最终名称是
@ACMEBundle/theme\u ui/index.html.twig

我在这里看到两种解决方案:

  • 完全覆盖
    扩展
    包含
    ,以便像
    {%'@ACMEBundle/index.html.twig%}

  • 创建新的
    extends\u theme\u aware
    include\u theme\u aware
    函数,这些函数转换模板的名称并使用本机函数来完成任务

  • 我怎样才能做到这一点


    谢谢。

    检查此项,它可能会帮助您为什么不为
    theme\u引导
    theme\u ui
    创建一个变量?类似于
    @ACMEBundle/'~var_theme~'/index.html.twig
    好的,这个解决方案适合