mschop/notee

HTML5 生成库

v1.0.3 2024-02-18 20:47 UTC

README

logo

链接

文档

模板引擎的更好替代品。

<?php

return _document(
    _html(
        _head(
            _title('Build HTML the awesome way'),
        ),
        _body(
            _h1('Why should you choose NoTee'),
            _ul(
                map($reasonsForNoTee, fn($reason) => _li(['class' => 'reason'], $reason))
            ),
        )
    )
)

什么是NoTee

NoTee 是一个专门为生成 HTML5 而构建的库。它不是一个通用目的的模板引擎。

与传统的模板引擎(如 Twig 或 Smarty)相比,NoTee 具有以下优点

  • 更安全
  • 错误更少
  • 简单/易于设置(无编译步骤)
  • 可调试
  • 可测试
  • 不可变节点树(无限节点重用)
  • 事件系统
  • 更简洁的 HTML
  • 函数式编程

更安全

HTML 是文本。如果不解析 HTML,您就不会有任何包含数据的语义。

有关更多详细信息,请参阅文档中的 安全 部分。

错误更少

使用 NoTee,您永远不会有包含标签或引号错误。

简单/易于设置

使用 NoTee 只需在您的应用程序中编写几行代码。您不需要任何可写目录(用于编译模板)。NoTee 无缓存且运行速度快。

可调试

NoTee 使用正常的 PHP。只需使用 xdebug(或任何其他调试器)即可逐步遍历您的视图层。

可测试

基于 NoTee 的视图层的测试要简单得多,因为 HTML 是统一风格的。

不可变节点树

节点工厂生成不可变的节点树。因此,您可以重用节点,而不会遇到问题。

事件系统

NoTee 具有强大的事件系统。您需要将 csrf token 添加到每个表单元素?没问题。只需注册事件监听器并在表单节点创建时创建一个即可。

更简洁的 HTML

NoTee 尽可能产生最简洁的输出。例如,在 HTML5 中,可以省略关闭标签。这减少了响应大小。NoTee 尽量产生最小的 HTML。默认情况下没有空白符。

函数式编程

因为您使用的是纯 PHP,所以可以使用函数式编程。NoTee 与函数式概念协同工作得很好。