packfire / mustache
该包已废弃,不再维护。未建议替代包。
PHP Mustache 实现
1.2.4
2014-03-26 13:52 UTC
Requires
- php: >=5.3.0
README
Packfire Mustache 是为 Packfire 定制的一个轻量级 Mustache 实现。在采用 Mustache 之前,Packfire 一直使用一个简单的标记替换模板引擎,该引擎使用单个花括号来表示标记。
<h1>
{title}
</h1>
<p>{message}</p>
然而,这个简单的模板解析器过于原始,不支持 Mustache 所支持的嵌套和列表。因此,Packfire 采用了 Mustache 模板引擎作为其默认模板引擎。
然而,由 bobthecow 实现的 PHP Mustache 实现 被发现过于笨重,因此我决定自己实现一个。Mustache 已经通过提供的规范测试进行了测试。
Packfire Mustache 使用双花括号来表示标记,默认支持转义,并支持嵌套的块标记
Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{taxed_value}}, after taxes.
{{/in_ca}}
要了解更多关于 Packfire Mustache 的工作原理,您可以参考 原始 Mustache 手册,因为 Mustache 是设计为平台无关和跨平台的。
## 安装
Packfire Mustache 可以通过 Composer 安装
{
"require": {
"packfire/mustache": "1.0.*"
}
}
然后运行 Composer 安装命令
$ composer install
## 使用
一个快速示例
use Packfire\Template\Mustache\Mustache;
$m = new Mustache('Hello {{planet}}!');
echo $m->parameters(array('planet' => 'World'))->render();
// "Hello World!"
以及一个更深入的示例--这是标准的 Mustache 模板
Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{taxed_value}}, after taxes.
{{/in_ca}}
以及相关的 Mustache
类
use Packfire\Template\Mustache\Mustache;
class Chris extends Mustache {
public $name = "Chris";
public $value = 10000;
public function taxed_value() {
return $this->value - ($this->value * 0.4);
}
public $in_ca = true;
}
像这样渲染它
$chris = new Chris;
echo $chris->template($template)->render();
这是同样的东西,但用不同的方式
创建一个视图对象--它也可以是一个关联数组,但那些在执行函数方面并不太好
class Chris {
public $name = "Chris";
public $value = 10000;
public function taxed_value() {
return $this->value - ($this->value * 0.4);
}
public $in_ca = true;
}
然后渲染它
use Packfire\Template\Mustache\Mustache;
$chris = new Chris();
$m = new Mustache();
echo $m->template($template)->parameters($chris)->render();