proger / htmlki
无缝模板化,秉承HTML精神。
dev-master
2021-01-27 17:42 UTC
This package is not auto-updated.
Last update: 2024-09-28 16:31:00 UTC
README
HTMLki 采用非主流方法。与发明另一个PHP或Mustache不同,它为古老的HTML注入了新特性——循环、变量、本地化、自定义标签等,而不会破坏其原有的简洁形式。
<ul $menu>
<li "$classes">
<img $icon src=$icon>
<a "$url" target=$target>$caption</a>
</li>
</endul>
这里我们看到的是
- 一个循环:如果
$menu
中至少有一个项目,则输出<ul>
- 一个“if”:如果
$icon
不为假值,则输出<img>
- 一些属性魔法:
<li "classes">
(<li class="classes">
),<a "url">
(<a href="url">
) - 反XSS:
$caption
是一个变量,默认是转义的
它没有依赖,可以在 PHP 5.6 及以上版本 中直接使用。
[ 完整文档 ]
用法
适用于Composer,在 Packagist 上通过 proger/htmlki
可用。
独立
// Configure your autoloader to load the HTMLki namespace from class/HTMLki/. echo HTMLki\HTMLki::template(HTMLki\HTMLki::compile('<radio>')); //=> <input type="radio">
功能
因为HTMLki是加强版的HTML,任何带有HTML/PHP语法方案的文本编辑器在大多数情况下都能正确高亮显示。
HTMLki为HTML注入了
- XSS防护 - 默认输出HTML转义
- 循环和条件 - 如上面的示例:
<ul $list>
和<if $a == 3>
- 属性魔法 - 自动扩展
<form file>
为<form enctype="multipart/form-data">
,<div "span-6">
为<div class="span-6">
等 - 标签魔法
- 快捷方式(
<radio>
到<input type="radio">
) - 多标签(
<thead/tr>
到<thead><tr>
) - 单标签(
<textarea />
到<textarea></textarea>
) - 等等
- 快捷方式(
- 语言行 - 简单地是任何用双引号包围的文本:
<b>"Hello!"</b>
- 表达式和变量 - 如
{ date('d.m.y') }
- PHP代码 - 正如你所猜测:
<?='string'?>
- 短PHP标签自动扩展,因此你不必关心任何特定的php.ini
设置 - 函数标签 - 以自定义标签的形式,如
<include>
- 输入检查 - 清楚地看到模板接受什么:
$>currentPage@1 int <= $lastPage
- 大多数构造可以转义,例如
""Not a language."
,{{ not_an_expr }}
和$$notAVar
- 这个列表并不完整 - 请参阅 文档 了解所有增强功能
上面的内容不需要任何额外的集成代码。然而,你可以通过添加特定标签、属性等处理程序来调整HTMLki,使其成为适用于特定应用的理想标记。
例如,HTMLki 可以自动将 src
、href
和 action
属性扩展为完整的 URL,或者有像 <errors>
这样的标签,输出与某些输入字段(文本区域、选择框等)关联的错误列表。