oscarpalmer / yogurt
一个小型的模板引擎。
Requires
- php: >=5.3.0
Requires (Dev)
- league/phpunit-coverage-listener: dev-master
This package is not auto-updated.
Last update: 2021-07-09 23:08:52 UTC
README
Yogurt 是一个受 Beach 的 Hammer 启发的 PHP 模板语言(>=5.3)。Hammer 的语法基于常规的 HTML 注释标签,因此您不需要为您的编辑器安装另一个语法高亮器。不错,对吧?
入门
安装
Yogurt 通过 Composer 提供。
{
"require": {
"oscarpalmer/yogurt": "1.*"
}
}
基本用法
use oscarpalmer\Yogurt\Yogurt; $yogurt = new Yogurt("./directory/for/templates", "template-extension"); $flavour = $yogurt->flavour("my-template"); # Or $flavour = new Flavour($yogurt, "my-template"); $flavour->data(array( "title" => "My Title" )); $flavour->tagline = "My tagline."; echo $flavour->taste(); # Or just echo $flavour;
语法
语法基于常规 HTML 注释和控制结构(if 和 foreach),基于 Twig 的语法,因此学习起来不应该太难。
变量
<p><!-- variable --></p> <p><!-- chaining.variables.works.too --></p>
variable 是数据对象($flavour->data();)的直接子对象,而 chaining.variables.works.too 是数据对象内部多个数组或对象的嵌套子对象。
变量应该是 scalar 类型,即 boolean、float、integer 或 string。如果不是,PHP 将会报错。
变量修改器
<p><!-- variable ~ escape --></p>
变量也可以被修改。
dump:使用var_dump输出变量。escape:转义不良字符,例如标签。json:将任何内容转换为有效的 JSON 标记。lowercase:将字符串转换为小写版本。trim:去除字符串的前后空白。uppercase:将字符串转换为大写版本。
包含其他文件
<!-- include file.html --> <!-- include file -->
然后 Yogurt 将尝试在 Yogurt 提供的目录中找到文件,如"入门"示例所示;第二个将自动追加提供的文件扩展名。
循环
<!-- for item in items --> <p><!-- item --></p> <!-- endfor -->
items 应该是数组或对象,但 item 可以是任何东西;只需记住,如果它不是 scalar,请通过连接名称来访问项的子项,例如:item.title。
索引
在循环时,有时您需要知道项的索引——即它在数组或对象中的位置。可以通过在数组或对象名称后附加 _index 来访问项的索引,例如,对于名为 array 的数组,其索引为 array_index。
如果和否则
<!-- if title --> <p>Title exists.</p> <!-- endif --> <!-- if page is "some-page" --> <p>Page is "some-page".</p> <!-- elseif number === 1234 --> <p>Number is "1234".</p> <!-- else --> <p>This is pretty cool.</p> <!-- endif -->
支持的比较运算符有 ===、==、!==、!=、>=、<=、<>、>、<、is 和 isnt。 is 和 isnt 分别会被转换为 == 和 !=。
值可以是 标量、null 或变量。 boolean、float、integer 和 null 值可以加引号,但并非必须。
然而,字符串却必须加引号;如果不加引号,它们将被假定为变量。
待办事项
- 更多的字符串修饰符。
- 添加和移除自定义修饰函数。
- 添加和移除自定义解析函数?
- 缓存?
许可证
MIT 许可证;更多信息请参阅 许可证文件。