plumphp/plum-twig

PlumTwig 是用于 Plum 的 Twig 转换器。

v0.1 2015-05-17 20:37 UTC

This package is auto-updated.

Last update: 2024-09-20 09:06:21 UTC


README

Plum

PlumTwig 是 Twig 的转换器,用于 Plum。Plum 是 PHP 的数据处理管道。

Latest Version Build Status Windows Build status Scrutinizer Code Quality Code Coverage StyleCI

由欧洲维也纳的 Florian Eckerstorfer 开发。

安装

您可以使用 Composer 安装 PlumTwig。

$ composer require plumphp/plum-twig

用法

有关 Plum 的一般信息,请参阅 Plum 文档

TwigConverter

在其最简单的形式中,Plum\PlumTwig\TwigConverter 接收一个项目并返回一个渲染的模板。给定的项目作为上下文传递给 Twigs 的 render() 方法。以下代码渲染了 hello.html.twig 模板,并将 ["name" => "Florian"] 作为上下文传递给模板。convert() 的返回值是渲染的模板。

use Plum\PlumTwig\TwigConverter;

$converter = new TwigConverter($twig, 'hello');
$converter->convert(['name' => 'Florian']);

默认情况下,将在给定的模板名称后附加 .html.twig。您可以通过调用 setFileExtension() 来更改文件扩展名。

$converter->setFileExtension('.twig');

有时应该使用不同的模板来渲染不同的项目。如果您将模板属性传递给构造函数,则从给定的项目检索模板名称。由于 TwigConverter 使用 Vale 来检索值,因此即使项目是复杂和嵌套的结构,这也可以工作。

$converter = new TwigConverter($twig, 'default', ['template' => 'layout']);

// The template name.html.twig is used to render the item
$converter->convert(['name' => 'Florian', 'layout' => 'name']);

我们已经看到默认情况下,TwigConverter 接收任意项目(例如,数组或对象)并将其转换为字符串。在许多情况下,转换器将是更大 Plum 工作流的一部分,并且您希望保留项目中的数据。您可以将目标属性传递给构造函数,并将渲染的模板使用 Vale 存储在项目中使用。

$converter = new TwigConverter($twig, 'layout', ['target' => 'content']);

// The rendered template is added to the item with the key "content"
$converter->convert(['name' => 'Florian']); // -> ['name' => 'Florian', 'content' => '...']

并不是每次都需要传递整个项目作为上下文,而是项目的一个元素。您可以通过传递上下文属性来告诉 TwigConverter 项目的哪个字段应用作上下文。

$converter = new TwigConverter($twig, 'layout', ['context' => 'data']);

// Only the ['name' => 'Florian'] is passed as context to Twig
$converter->convert([['data' => ['name' => 'Florian'], 'file' => 'person']);

无论整个项目还是其部分用作上下文,Twig 只允许传递数组作为上下文。因此,TwigConverter 检查上下文是否是对象,并且如果它有,它将调用其 toArray() 方法。

变更日志

版本 0.1 (2015 年 5 月 17 日)

  • 首次发布

作者

Plum 和 PlumTwig 已由欧洲维也纳的 Florian Eckerstorfer (Twitter) 开发。

Plum 是 Cocur 的项目。您可以通过 Twitter 联系我们: @cocurco

许可

MIT 许可证适用于 plumphp/plum-twig。有关完整的版权和许可信息,请参阅与源代码一起分发的 LICENSE 文件。