myerscode/templex

一个轻量级的基于正则表达式的模板渲染引擎

安装: 18

依赖: 1

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:项目

1.1.2 2022-02-11 22:03 UTC

This package is auto-updated.

Last update: 2024-09-12 03:41:55 UTC


README

一个基于正则表达式的轻量级PHP模板渲染引擎

Latest Stable Version Total Downloads License Tests

为什么这个包很有用?

此包允许您定义占位符,然后使用PHP变量填充模板。由于引擎使用正则表达式,它不依赖于使用 eval 或将代码包含并运行作为PHP。

这意味着您可以简单地生成您需要的任何PHP(或任何类型的文本内容填充文件)。

安装

您可以通过composer安装此包

composer require myerscode/templex

用法

$templateDirectory = __DIR__ . '/Resources/Templates/;
$templateExtentions = 'stub';
$templex = new Templex($templateDirectory, $templateExtentions);

echo $templex->render('index');

模板目录

模板

模板可以是任何形式的文本文件。默认情况下,Templex会查找具有.stub.template文件扩展名的文件。

Templex使用<{}>作为打开和关闭锚点标记来查找和处理插槽,这些插槽可用于从占位符和逻辑生成动态视图。

插槽

插槽是Templex的“魔法”。它们是在模板上执行替换和填充操作的独立功能,以创建最终的渲染输出。

默认包含的插槽有

  • IncludeSlot - 包含另一个模板的内容
  • ControlSlot - 基于流程逻辑的处理,如foreach、if语句
  • VariableSlot - 替换单个占位符

包含

为了创建可重用的占位符,可以通过模板名称简单地包含另一个模板。

<{ include partials.header }>

条件

Templex可以处理嵌套插槽,因此嵌套控制条件将按照找到的顺序处理。

条件可以是变量、数字、布尔值或文本字符串,并且可以使用常用的比较评估器。

<{ if( $value === 'foobar' ) }>
...
<{ if( $value > 7 ) }>
...
<{ if( $value == true ) }>
...
<{ if( $value != false ) }>

示例

<{ if( $value === $condition ) }>
 <p>That value was true!</p>
<{ endif }>

<{ if( $value === 'foobar' ) }>
 <p>That value was true!</p>
<{ else }>
 <p>That value was false!</p>
<{ endif }>

循环

循环将使用数组变量在模板中创建多个迭代。

示例

<ul class="row">
    <{ foreach( $users as $user ) }>
        <li><{ $user }></li>
    <{ endforeach }>
</ul>

变量

变量在找到匹配的锚点时被替换。它们可以在渲染时传递,也可以通过其他插槽(如循环)创建。

示例

Hi <{ $name }>!

问题和贡献

我们非常乐意接受添加功能或修复的pull请求。

有关功能请求或错误报告,可以在Github Issue Tracker上提交。

请阅读Myerscode 贡献指南,了解我们的行为准则。

许可

MIT许可(MIT)。请参阅许可文件获取更多信息。