habanero/tailor

此包已被弃用且不再维护。未建议替代包。
关于此包最新版本(v0.1.1)的许可证信息不可用。

PHP的多模板处理

v0.1.1 2015-07-18 19:48 UTC

This package is auto-updated.

Last update: 2020-01-29 20:55:46 UTC


README

提供通用模板渲染接口。

它自带对Twig、CoffeeScript、Jade、HAML、SCSS、LESS和Markdown的支持。使用Composer标准编写,PSR友好。

使用Composer

只需在composer.json文件中声明即可。

{
  "require": {
    "habanero/tailor": "dev-master"
  }
}

然后执行Composer以下载和设置最新版本。

$ php composer.phar install

您可以使用Tailor与其他composer脚本一起使用。

<?php

require 'vendor/autoload.php';

# configure before
\Tailor\Config::set('cache_dir', '/tmp');
\Tailor\Config::set('views_dir', __DIR__);

# go ahead!
\Tailor\Base::initialize();

# raw rendering
$tpl = '%a{ :href => "#" } Link';
$out = \Tailor\Base::parse('haml', $tpl);

echo $out; // <a href="#">Link</a>


# using as helper
function partial($path, array $vars = array()) {
  $tpl = \Tailor\Base::partial($path);
  $out = \Tailor\Base::render($tpl, $vars);

  return $out;
}

# full-view rendering
$out = partial('index.php', array('name' => 'Joe'));

echo $out; // Hello Joe!

如果您想使用HAML与上面的代码一起使用,您必须在指定的./views目录中有一个名为index.php.haml的文件。

= "Hello $name!"

模板评估顺序是从右到左的,如果文件名包含一个扩展名或扩展名不在任何注册的引擎中,则将停止。

index.php.haml => haml-engine … continue
index.php => php-engine … stop!

由于Tailor的partial()方法只会编译以保留从其第一个扩展名开始的原生性质,因此使用render()方法最终渲染模板是主要原因。

只需fork我!

当然,您欢迎fork并发送pull-request来添加更多引擎、修复或增强功能。;-)