## 自定义模板引擎规则
`GFPHP`中模板引擎是使用 [钩子](钩子.md) 的`filter`机制实现的。
### 模板引擎编译的过滤器
名称为 `template_filter` 只需要增加这个行为的一个钩子,就可以实现对模板功能进行拓展了。
### 在配置中增加钩子
文件 `Config/hooks.php`
```
<?php
return [
'template_filter' => [
[
'Hooks' => Hooks\Template::class,
'Func' => 'parse',
],
],
];
```
### 在程序中编译模板前添加钩子
```
//-- 添加一个编译模板的钩子
Hooks::add('template_filter',Hooks\Template::class,'parse');
```
### 钩子实例
```
<?php
namespace Hooks;
class Template
{
//-- 将一个<php>标签转化为原生格式的写法
public function parse($content){
return preg_replace('/<php>(.+)<\/php>/iUs','<?php \\1 ?>',$content);
}
}
```
### 模板文件
```
<php>echo 'hello word!';</php>
```
### 编译结果为
```
<?php echo 'hello word!'; ?>
```
- 项目安装
- 开发前必读
- 配置项目
- 基础配置
- 数据库配置
- 路由基础配置
- 调试的基础配置
- 文件上传配置
- 命令行配置
- 缓存配置
- 视图配置
- 视图默认变量
- 配置的读取和使用
- 钩子的配置
- 路由
- 默认的路由
- 以配置文件设置路由规则
- 以Annotation形式设置路由
- URL生成
- 控制器
- 创建一个控制器
- 视图渲染
- 数据库
- 简述
- 创建一个数据库模型
- 链式操作
- 数据查询
- 更新数据
- 插入数据
- 删除数据
- 事务操作
- 高级功能
- 字段验证
- 增加一个验证规则
- 自带的验证规则
- 验证规则的使用
- 自动判断规则
- 数据分表
- 数据分表准备
- 视图
- 视图实例
- 自定义模板标签
- 输出变量
- 判断语法
- 遍历循环
- 使用函数
- 原样输出
- 模板引用
- 模板继承
- 引入资源
- 原生PHP标签
- 自定义模板引擎规则
- 钩子
- 行为
- 过滤器
- 监听
- 缓存
- 缓存的配置
- 设置缓存
- 读取缓存
- 删除缓存
- 命令行
- 命令行的使用
- 自定义命令行Handler