r3c/deval

支持编译时部分评估的模板引擎

1.1.8 2024-08-14 20:35 UTC

This package is auto-updated.

Last update: 2024-09-24 05:51:10 UTC


README

Build Status license

概述

Deval是一个PHP模板引擎,支持在编译时进行部分评估,以便进行早期错误检测、优化生成的代码并提高执行性能。

虽然大多数PHP模板引擎遵循“加载变量并渲染”的工作流程,但Deval引入了一个中间的预编译注入步骤,用于指定在每次渲染中都不会改变的变量。通过这样做,Deval将预先评估您的模板,并生成所有这些不变量都已评估的专业化代码。

以下示例模板

{{ $ locale(language, "users.list") }}
{{ for user in users }}
    - {{ $ user.login }}
{{ empty }}
    {{ $ locale(language, "no.users") }}
{{ end }}

在注入一个locale函数和一个language变量后,将编译一个类似的PHP片段

Registered user:
<?php $_counter = 0; foreach ($users as $user) { ?>
    - <?php echo $user->login; ?>
<?php ++$_counter; } if ($_counter === 0) { ?>
    No users registered.
<?php } ?>

如您所见,所有依赖于变量locale和language的语句都已评估在生成的代码中,因为它们的值在编译时是已知的。其他变量保持未更改,Deval期望您在渲染模板时指定它们的值(如果未指定,将引发错误)。

说明

使用Composer安装Deval并自动加载

composer require r3c/deval

或从GitHub下载最新版本,然后手动解包并require

require 'path/to/deval/deval.php';

完整的文档可在Read the Docs上找到。

资源

  • 联系方式:v.github.com+deval [at] mirari [dot] fr
  • 许可证:license.md