定制 plumphp/plum-twig 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

plumphp/plum-twig

最新稳定版本:v0.1

Composer 安装命令:

composer require plumphp/plum-twig

包简介

PlumTwig is a Twig converter for Plum.

README 文档

README

Plum

PlumTwig is a Twig converter for Plum. Plum is a data processing pipeline for PHP.

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

Developed by Florian Eckerstorfer in Vienna, Europe.

Installation

You can install PlumTwig using Composer.

$ composer require plumphp/plum-twig

Usage

Please refer to the Plum documentation for more information about Plum in general.

TwigConverter

In its simplest form Plum\PlumTwig\TwigConverter takes an item and returns a rendered template. The given item is passed to Twigs render() method as context. The following code renders the hello.html.twig template and passes ["name" => "Florian"] as context to the template. The return value of convert() is the rendered template.

use Plum\PlumTwig\TwigConverter;

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

By default .html.twig is appended on the given template name. You can change the file extension by calling setFileExtension():

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

Sometimes different items should be rendered using different templates. If you pass a template property to the constructor, the template name retrieved from the given item. Because TwigConverter uses Vale to retrieve the value this works even if the item is a complex and nested structure.

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

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

We have seen that by default TwigConverter takes an arbitrary item (e.g., an array or object) and converts it into a string. In many cases the converter will be part of a bigger Plum workflow and you would like to keep the data in the item. You can pass a target property to the constructor and the rendered template will be stored in the item using 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' => '...']

Not every time the full item should be passed as context, but rather an element of the item. You can pass the context property to tell TwigConverter which field in the item should be used as context.

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

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

Whether the whole item or just part of it is used as context, Twig only allows arrays to be passed as context. Thus, TwigConverter checks if the context is an object and it will call its toArray() method (if it has one).

Change Log

Version 0.1 (17 May 2015)

  • Initial release

Author

Plum and PlumTwig have been developed by Florian Eckerstorfer (Twitter) in Vienna, Europe.

Plum is a project of Cocur. You can contact us on Twitter: @cocurco

License

The MIT license applies to plumphp/plum-twig. For the full copyright and license information, please view the LICENSE file distributed with this source code.

统计信息

  • 总下载量: 27
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-03-21