opsbears/piccolo-templating

此包已被废弃,不再维护。未建议替代包。

Piccolo框架的模板工具

1.0-alpha1 2016-07-22 07:13 UTC

This package is not auto-updated.

Last update: 2020-09-18 20:28:28 UTC


README

此模块提供两项功能

  1. 一个标准化的TemplateEngine接口,所有模板引擎提供者都应该实现。
  2. TemplateRenderingChain类,可以尝试多个模板引擎以找到并渲染特定模板。

安装

尽管此模块很可能作为其他模块的依赖项被拉入,但您可以使用composer显式安装它。

composer require opsbears/piccolo-templating

配置

默认情况下,您不需要太关注此模块,因为引入至少一个模板引擎将自动加载此模块。但是,如果您愿意,您可以在配置中显式加载它。

'modules' => [
    //...
    TemplatingModule::class,
    //...
],

用法

直接使用模板引擎

如果您只想使用一个模板引擎,这很简单。只需加载模板引擎模块,这将设置依赖注入容器,将传递该引擎而不是TemplateEngine接口。然后您可以作为依赖项请求TemplateEngine接口。

function myFunction(TemplateEngine $tpl) {
    $tpl->renderFile(
        '/path/to/template/directory',
        '/path/to/template/directory/templateName.twig'
        ['myVariable' => 'mydata]
    );
}

警告!如果您加载多个模板引擎模块,则配置的最后一个引擎将具有优先权。

使用渲染链

如果您想支持多个模板引擎,您可以使用TemplateRenderingChain类来做到这一点。模板引擎将自动注册到其中,所以您要做的就是作为依赖项请求渲染链。

function myFunction(TemplateRenderingChain $renderingChain) {
    $renderingChain->render(
        '/path/to/template/directory',
        'templateName'
        ['myVariable' => 'mydata]
    );
}

然后它将自动在/path/to/template/directory中查找支持每个模板引擎的扩展名的文件templateName。如果找到,它将渲染并返回结果。