dahas / easy-template
PHP 模板解析器
v1.1.0
2023-03-14 10:29 UTC
Requires (Dev)
- phpunit/phpunit: ^10.1@dev
README
EasyTemplate 是一个 PHP 模板解析器,它将逻辑与视图分离。它简单地将 HTML 文件中标记的区域替换为控制器脚本生成的内容。
要求
PHP 8.1.2
安装
$ composer require dahas/easy-template
示例
模板可以是完整的 HTML 文件,也可以是包含标记和片段的 HTML 段落。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>[[TITLE]]</title> </head> <body> <h1>[[HEADER]]</h1> <table class="table"> <thead> <tr> <th scope="col">#</th> <th scope="col">NAME</th> <th scope="col">AGE</th> <th scope="col">CITY</th> </tr> </thead> <tbody> <!-- {{ROWS}} begin --> <tr> <th scope="row">[[UID]]</th> <td>[[NAME]]</td> <td>[[AGE]]</td> <td>[[CITY]]</td> </tr> <!-- {{ROWS}} end --> </tbody> </table> </body> </html>
以下是如何加载模板的方法
$template = new EasyTemplate("path/to/template.html");
标记
标记是占位符。当解析 HTML 模板时,它们将被内容替换。标记由双方括号包围,如下所示:[[MARKER]]
片段
片段是模板中的 HTML 段落。它由两个标记定义,一个在段落的开始,一个在结束。两个片段标记都被大括号包围两次。您还可以将它们包裹在注释中
<!-- {{ROWS}} begin --> <tr> <th scope="row">[[UID]]</th> <td>[[NAME]]</td> <td>[[AGE]]</td> <td>[[CITY]]</td> <td>[[COUNTRY]]</td> </tr> <!-- {{ROWS}} end -->
片段被当作模板处理。您甚至可以将一个片段放入自己的 HTML 文件中。
在模板中获取片段
$slice = $this->template->getSlice("ROWS");
从其自身文件加载片段
$slice = new EasyTemplate("path/to/slice.html");
解析标记和片段
要替换标记和片段并返回一个有效的 HTML 文档,您使用 parse()
方法。该函数将标记数组作为第一个参数,将片段数组作为第二个参数。
$template = new EasyTemplate("path/to/template.html"); $markers = [ "TITLE" => "The title", "HEADER" => "Easy Template is cool!" ]; $slice = $template->getSlice("ROWS"); $rows = $slice->parse([ "UID" => 1, "NAME" => "Angus Young", "AGE" => 66, "CITY" => "Melbourne", ]); $slices = [ "ROWS" => $rows ]; return $template->parse($markers, $slices);