扩展细枝模板-如何在PHP中实现这一点?

扩展细枝模板-如何在PHP中实现这一点?,php,twig,fuelphp,Php,Twig,Fuelphp,我目前正在寻找定义twig的“extends”标记的类 背景:我在FuelPHP旁边使用Twig创建模板。然而,当我模块化功能(将它们从基本应用程序文件夹移动到modules/…)时,我遇到了麻烦 twig的文件系统加载器选择第一个具有所提供名称的模板,而不考虑模块上下文 我想传递第二个参数,并在此基础上设置模板搜索路径 如果有人给我指出正确的班级,我会很高兴的 EDIT-我试图用extends做的一个例子(对于include也一样):您不是在寻找实现{%extends“some_path”%}

我目前正在寻找定义twig的“extends”标记的类

背景:我在FuelPHP旁边使用Twig创建模板。然而,当我模块化功能(将它们从基本应用程序文件夹移动到modules/…)时,我遇到了麻烦

twig的文件系统加载器选择第一个具有所提供名称的模板,而不考虑模块上下文

我想传递第二个参数,并在此基础上设置模板搜索路径

如果有人给我指出正确的班级,我会很高兴的


EDIT-我试图用extends做的一个例子(对于include也一样):

您不是在寻找实现
{%extends“some_path”%}
标记的类,而是在寻找解释
“some_path”
部分的类,以便从中获取正确的细枝文件

每次需要细枝模板时,都会使用初始化环境时指定的模板从字符串获取细枝文件的内容。Twig附带了2个内置加载程序:
Twig\u Loader\u文件系统
用于从指定路径获取Twig文件,当您指定Twig代码而不是模板名称时,使用
Twig\u Loader\u字符串


通过实现Twig_Loader接口和Twig_ExistsLoader接口,您可以开发自己的Twig Loader。只需查看位于
twig/lib/twig/Loader
目录中的现有加载程序,并根据需要实现您自己的加载程序。例如,
$name
参数将包含一个模板“路径”(例如,模块:template.twig),应用自定义逻辑后,您可以返回右侧
template.twig
文件的内容。

您需要您的代码来澄清这一点。请分享您的代码,并给出一些解释。如果您没有提供完整的解决方案,没有人可以为您提供问题的解决方案information@altafhussain我试图做一些类似的事情,它采用模块名,将模板路径限制为模块的views文件夹,然后使用getSource获取模板,而不必干扰基本的应用程序配置。现在,我正试图用extendsI实现同样的目标。正如上面所解释的,我正在寻找一个快速而肮脏的解决方案。根据,我已经为include切碎了一个类似的函数。我也在考虑这样做。虽然从理论上讲,您的方法会更好,但对于像我这样的小镇项目来说,它可能会超过顶部。然后,继续使用
Loader\u文件系统
,并为每个模块添加名称空间<代码>$loader->addPath(“path/to/module/templates”,“moduleName”),然后执行
{%extends'@moduleName/template.twig%}
.Hm,是的,听起来是可行的。非常感谢。