## 監聽鉤子
`listen` 執行機制和過濾器基本一致,執行行為下的所有的鉤子,監聽傳入的參數,然后對其作出對應的判斷,只是不會返回值.
```
Hooks::listen('行為名稱','參數(按需求傳參即可)');
```
### 例:
實現一個滿足閱讀次數給用戶增加積分的功能
添加鉤子
```
Hooks::add('read_num',Hooks\Hooks::class,'read_num');
Hooks::add('read_num',Hooks\Hooks::class,'read_num2');
```
編寫鉤子
```
<?php
namespace Hooks;
use \GFPHP\DB;
class Template
{
//-- 訪問第1次增加1金幣
public function read_num($user_read_num,$user_id){
if($user_read_num==1){
DB::table('users')->where('user_id',$user_id)->setInc('score',1);
}
}
//-- 訪問第10次增加10金幣
public function read_num2($user_read_num,$user_id){
if($user_read_num==10){
DB::table('users')->where('user_id',$user_id)->setInc('score',10);
}
}
}
```
執行鉤子
```
Hooks::listen('read_num',[
//-- 閱讀次數
1,
//-- 用戶ID
1
]);
```
用戶積分會增加一個
如果閱讀次數是10
```
Hooks::listen('read_num',[
//-- 閱讀次數
10,
//-- 用戶ID
1
]);
```
用戶積分會增加10個.
- 項目安裝
- 開發前必讀
- 配置項目
- 基礎配置
- 數據庫配置
- 路由基礎配置
- 調試的基礎配置
- 文件上傳配置
- 命令行配置
- 緩存配置
- 視圖配置
- 視圖默認變量
- 配置的讀取和使用
- 鉤子的配置
- 路由
- 默認的路由
- 以配置文件設置路由規則
- 以Annotation形式設置路由
- URL生成
- 控制器
- 創建一個控制器
- 視圖渲染
- 數據庫
- 簡述
- 創建一個數據庫模型
- 鏈式操作
- 數據查詢
- 更新數據
- 插入數據
- 刪除數據
- 事務操作
- 高級功能
- 字段驗證
- 增加一個驗證規則
- 自帶的驗證規則
- 驗證規則的使用
- 自動判斷規則
- 數據分表
- 數據分表準備
- 視圖
- 視圖實例
- 自定義模板標簽
- 輸出變量
- 判斷語法
- 遍歷循環
- 使用函數
- 原樣輸出
- 模板引用
- 模板繼承
- 引入資源
- 原生PHP標簽
- 自定義模板引擎規則
- 鉤子
- 行為
- 過濾器
- 監聽
- 緩存
- 緩存的配置
- 設置緩存
- 讀取緩存
- 刪除緩存
- 命令行
- 命令行的使用
- 自定義命令行Handler