目錄
1. 官方解釋
2. TP5 自帶鉤子(TP框架中已經埋好標籤,我們只要配置實現對應的函數就可以用了)
3. 鉤子函數的註冊和監聽都依賴think\Hook.php
4. 系統只帶的鉤子函數,我們可以在application\tags. php中註冊,也可以使用Hook::add()來新增。
5. 鉤子函數的綁定。
首頁 php框架 ThinkPHP 介紹tp5框架中的hook機制

介紹tp5框架中的hook機制

May 08, 2021 pm 05:01 PM
tp5

以下由thinkphp教學專欄為大家介紹tp5框架中的hook機制,希望對需要的朋友有幫助!

1. 官方解釋

行為(Behavior)是ThinkPHP擴展機制中比較關鍵的一項擴展,行為既可以獨立調用,也可以綁定到某個標籤中進行偵聽,在官方提出的CBD模式中行為也佔了主要的地位,可見行為在ThinkPHP框架中意義非凡。

2. TP5 自帶鉤子(TP框架中已經埋好標籤,我們只要配置實現對應的函數就可以用了)

  1. app_init 應用初始化標籤位,在think\App.php的initCommon函式中Hook::listen('app_init');沒有接收參數。
  2. app_begin應用程式開始標籤位,在think\App.php的run函數中,在載入路由和請求資訊後執行。會接收一個參數,儲存的是本次請求的調度資訊。
  3. module_init 模組初始化標籤位,在think\App.php的module函數中,在載入請求控制器之前執行,接收一個參數,儲存請求資訊。
  4. action_init 控制器開始標籤位,在think\App.php的module函數中,在載入完控制器後,使用反射請求控制器之前執行。接收一個參數,是一個數組,第一個元素是請求控制器實例對象,第二個函數時要執行的控制器函數名稱。
  5. view_fileter 視圖輸出過濾標籤位,在think\View.php的fetch函數中,接收一個參數,視圖字串。
  6. app_end 應用程式結束標籤為,在think\App.php中run函數中,Hook::listen('app_end');
  7. log_write 日誌write方法標籤位,在呼叫Log: :wirte記錄日誌之前執行。接收一個參數,要寫入的日誌資訊。
  8. response_end 回應結束標籤為。在think\Response.php的send函數中,在回應客戶端請求之後執行。

3. 鉤子函數的註冊和監聽都依賴think\Hook.php

4. 系統只帶的鉤子函數,我們可以在application\tags. php中註冊,也可以使用Hook::add()來新增。

> 1. 官方文档数tags.php会自动加载,但是经测试我下载的tp5不会自动加载tags.php文件,所以就手动在think\start.php文件的App::run()->send();函数之前写了一行代码用于,注册tags文件中的钩子实现。代码为
"php
    // 加载Hook
    Hook::import(require APP_PATH . '/tags.php');
"
> 2. 也可以使用Hook::add和Hook::listen来添加自己的钩子函数。Hook::listen()相当于是标签位,Hook::add()则相当于是对标签位相应的实现。所以要确保Hook::add()在Hoo::listen之前执行,不然就没什么用处了。
登入後複製

5. 鉤子函數的綁定。

鉤子函數既可以單獨綁定一個類,也可以綁定類別中的一個方法,或直接綁定一個匿名函數。當綁定到一個類別時,如果類別中有run函數,那就直接執行run函數,如果沒有run函數,而有一個與鉤子名稱相同的函數則會執行該函數。 (注意:鉤子函數是駝峰式命名,且鉤子函數名的優先權大於run函數的優先權)

以上是介紹tp5框架中的hook機制的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1250
24