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 许可证;更多信息请参阅 许可证文件。