扩展Twig模板 - 如何在PHP中执行此操作?

时间:2014-06-28 12:11:33

标签: php twig fuelphp

我目前正在寻找定义树枝的'extends'标签的类。

背景:我使用Twig和FuelPHP来创建我的模板。然而,当我模块化功能(将它们从基本的app文件夹移动到模块/....)时,我遇到了一堵砖墙。

twig的Filesystem Loader选择提供名称的第一个模板,而不是关于模块上下文。

我想传递第二个参数并根据它设置模板搜索路径。

如果有人指出我正确的课程,我会很高兴

编辑 - 我尝试使用扩展程序的一个示例(这对包含内容也是如此):http://pastebin.com/Er2wJX9k

1 个答案:

答案 0 :(得分:0)

您不是在寻找实现{% extends "some_path" %}标记的类,您正在寻找解释"some_path"部分的类来获取正确的树枝文件。

每次需要twig模板时,初始化环境时指定的Loader用于从字符串中获取twig文件的内容。 Twig带有2个内置加载器:Twig_Loader_FileSystem用于从指定路径获取twig文件,当您提供twig代码而不是模板名称时使用Twig_Loader_String

您可以通过实施Twig LoaderTwig_LoaderInterface接口来开发自己的Twig_ExistsLoaderInterface。只需查看位于twig/lib/Twig/Loader目录中的现有文件,然后根据需要实现自己的Loader。例如,$name参数将包含模板“path”(例如,Module:template.twig),并且在应用自定义逻辑之后,您可以返回正确的template.twig文件的内容。 / p>