我目前正在寻找类定义树枝的'extends'标签。
背景:我使用Twig旁边的FuelPHP创建我的模板。然而,当我模块化功能(将它们从基本应用程序文件夹移到modules/....)时,我遇到了一堵砖墙。
twig的文件系统加载器选择第一个提供名称的模板,而不考虑模块上下文。
我想传递扩展第二个参数,并在此基础上设置模板搜索路径。
如果有人给我指出正确的班级,我会很高兴
EDIT -我试图用extends做的一个例子(这对include做同样的事情):http://pastebin.com/Er2wJX9k
您不是在寻找实现{% extends "some_path" %}
标记的类,您正在寻找解释"some_path"
部分以从中获得正确的分支文件的类。
每次需要twig模板时,将使用您在初始化环境时指定的Loader从字符串中获取twig文件的内容。Twig带有2个内置加载器:Twig_Loader_FileSystem
用于从指定路径获取Twig文件,Twig_Loader_String
用于当您提供Twig代码而不是模板名称时。
您可以通过实现Twig_LoaderInterface
和Twig_ExistsLoaderInterface
接口来开发自己的Twig Loader
。只需查看位于twig/lib/Twig/Loader
目录中的现有Loader,并根据需要实现自己的Loader。例如,$name
参数将包含一个模板"路径"(例如,Module:template.twig),在应用自定义逻辑之后,您可以返回正确的template.twig
文件的内容。