## 过滤器钩子
`filter` 执行机制为执行行为下的所有的钩子,并将前一个钩子的值注入到下一个钩子,知道结束,返回最后一个钩子返回值.
```
Hooks::filter('行为名称','参数(按需求传参即可)');
```
### 例:
添加钩子
```
Hooks::add('replace_ubb',Hooks\Hooks::class,'replace_ubb');
Hooks::add('replace_ubb',Hooks\Hooks::class,'replace_ubb2');
```
编写钩子
```
<?php
namespace Hooks;
class Template
{
public function replace_ubb($str){
return preg_replace('/\[img\](.+)\[\/img\]/is',"<img src=\"\\1\"/>");
}
public function replace_ubb2($str){
return preg_replace('/\[red\](.+)\[\/red\]/is',"<span style='color:#ff0000'>\\1</span>");
}
}
```
执行钩子
```
Hooks::filter('replace_ubb','[img]http://example.com/example.jpg[/img][red]红色[/red]');
```
执行结果
```
<img src="http://example.com/example.jpg"/><span style='color:#ff0000'>红色</span>
```
# 过滤器一般长用于数据处理
- 项目安装
- 开发前必读
- 配置项目
- 基础配置
- 数据库配置
- 路由基础配置
- 调试的基础配置
- 文件上传配置
- 命令行配置
- 缓存配置
- 视图配置
- 视图默认变量
- 配置的读取和使用
- 钩子的配置
- 路由
- 默认的路由
- 以配置文件设置路由规则
- 以Annotation形式设置路由
- URL生成
- 控制器
- 创建一个控制器
- 视图渲染
- 数据库
- 简述
- 创建一个数据库模型
- 链式操作
- 数据查询
- 更新数据
- 插入数据
- 删除数据
- 事务操作
- 高级功能
- 字段验证
- 增加一个验证规则
- 自带的验证规则
- 验证规则的使用
- 自动判断规则
- 数据分表
- 数据分表准备
- 视图
- 视图实例
- 自定义模板标签
- 输出变量
- 判断语法
- 遍历循环
- 使用函数
- 原样输出
- 模板引用
- 模板继承
- 引入资源
- 原生PHP标签
- 自定义模板引擎规则
- 钩子
- 行为
- 过滤器
- 监听
- 缓存
- 缓存的配置
- 设置缓存
- 读取缓存
- 删除缓存
- 命令行
- 命令行的使用
- 自定义命令行Handler