模板组件

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.3,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

< /div>

模板组件

模板组件提供了所需的所有工具构建任何类型的模板系统。

它提供了一个基础设施来加载模板文件和可选地监控他们的变化。它还提供了一种混凝土模板引擎使用PHP实现额外的工具来逃避和分离成块模板和布局。

< /blockquote>

安装

您可以安装组件在两个不同的方面:

然后,需要供应商/ autoload.php文件,使作曲家提供的半自动的机制。否则,您的应用程序无法找到这个Symfony组件的类。ob娱乐下载

< /div>

使用

PhpEngine类是组件的入口点。它需要一个模板名称解析器(TemplateNameParserInterface)模板名称转换为模板引用(TemplateReferenceInterface)。它还需要一个模板加载程序(LoaderInterface)使用模板引用来查找和加载模板:

1 2 3 4 5 6 7 8 9
使用ob娱乐下载\组件\模板\PhpEngine;使用ob娱乐下载\组件\模板\TemplateNameParser;使用ob娱乐下载\组件\模板\加载程序\FilesystemLoader;美元加载程序=FilesystemLoader (__DIR__' /视图/ %名称% ');美元模板=PhpEngine (TemplateNameParser (),美元加载程序);回声美元模板- >呈现(“hello.php”,数组(“firstname”= >“法”));
1 2
< !——视图/你好。php - - >你好,< ? php回声美元firstname? >!

呈现()方法解析视图/ hello.php文件并返回输出文本。第二个参数的渲染是一个数组变量的模板中使用。在本例中,结果将是你好,法比安!

请注意

模板将被缓存的内存引擎。这意味着,如果你多次呈现相同的模板相同的请求,模板只能从文件系统加载一次。

< /div>

美元的观点变量

在所有模板的解析PhpEngine,你得到一个神秘的变量美元的观点。该变量保存当前PhpEngine实例。这意味着你获得一些方法,使你的生活更容易。

< /div>

包括模板

分享模板代码的一个片段的最好办法是创建一个模板,可以包括其他模板。随着美元的观点变量的一个实例PhpEngine,你可以使用呈现()方法(最初用于呈现模板)在模板来呈现另一个模板:

1 2 3 4
< ? php美元的名字=数组(“法”,……)? >< ? phpforeach(美元的名字作为美元的名字):? >< ? php回声美元视图- >呈现(“hello.php”,数组(“firstname”= >美元的名字))? >< ? phpendforeach? >

全局变量

有时,您需要设置一个变量由一个可用在所有模板渲染引擎(如美元的应用变量在使用Symfony框架)。ob娱乐下载这些变量可以设置使用addGlobal ()方法,他们可以在模板正常访问变量:

1
美元模板- >addGlobal (“ga_tracking”,“UA-xxxxx-x”);

在一个模板:

1
<p>谷歌的跟踪代码是:< ? php回声美元ga_tracking? >< /p>

谨慎

全局变量不能被称为视图,因为他们已经由PHP引擎使用。

< /div>

请注意

可以被一个局部变量覆盖全局变量名称相同的模板中。

< /div>

输出逃离

呈现变量时,你应该摆脱这样HTML或JavaScript代码不写入页面。这将防止XSS攻击。要做到这一点,使用escape ()方法:

1
< ? php回声美元视图- >逃避(美元firstname)? >

默认情况下,escape ()方法假设变量输出在一个HTML上下文。第二个参数可以改变环境。例如,输出JavaScript内的东西,使用js背景:

1
< ? php回声美元视图- >逃避(美元var,js的)? >

组件有一个HTML和JS逃脱者。你可以注册自己的排放器使用setEscaper ()方法:

1 2 3 4 5
美元模板- >setEscaper (“css”,函数(美元价值){/ /……所有CSS逃离返回美元escapedValue;});

助手

模板组件可以很容易地通过助手扩展。助手是PHP对象,在模板上下文提供有用的特性。组件有一个内置的助手:

您可以使用这些助手之前,您需要注册使用设置():

1 2 3 4
使用ob娱乐下载\组件\模板\助手\SlotsHelper;/ /……美元模板- >集(SlotsHelper ());

定制的助手

您可以创建自己的助手通过创建一个实现类HelperInterface。然而,大部分的时间你会延长助手

助手需要有一个方法:getName ()。这个名字是用来辅助的美元的观点对象。

< /div>

创建一个自定义引擎

除了提供一个PHP模板引擎,您还可以使用模板创建自己的引擎组件。为此,创建一个新类,它实现了EngineInterface。这需要三个方法:

使用多个引擎

可以使用多个引擎同时使用DelegatingEngine类。这门课需要一个列表的引擎和行为就像一个正常的模板引擎。唯一的区别是,它代表调用另一个引擎。为模板,选择使用哪一个EngineInterface:支持()使用方法。

1 2 3 4 5 6 7 8
使用Acme\模板\CustomEngine;使用ob娱乐下载\组件\模板\PhpEngine;使用ob娱乐下载\组件\模板\DelegatingEngine;美元模板=DelegatingEngine (数组(PhpEngine (……)CustomEngine (…)));
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。