扩展小枝模板-如何在PHP中做到这一点


Extend Twig Template - how to do this in PHP?

我目前正在寻找类定义树枝的'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_LoaderInterfaceTwig_ExistsLoaderInterface接口来开发自己的Twig Loader。只需查看位于twig/lib/Twig/Loader目录中的现有Loader,并根据需要实现自己的Loader。例如,$name参数将包含一个模板"路径"(例如,Module:template.twig),在应用自定义逻辑之后,您可以返回正确的template.twig文件的内容。

相关文章: