検索
ホームページPHPフレームワークThinkPHPtp5 フレームワークにフックメカニズムを導入

次のチュートリアル コラムでは、tp5 フレームワークのフック メカニズムを紹介します。困っている友人の役に立てば幸いです。 1. 公式説明

動作は ThinkPHP 拡張メカニズムの重要な拡張機能です。動作は独立して呼び出すことも、タグにバインドすることもできます。リスニングの場合、動作も重要な役割を果たします公式に提案された CBD モデルでは、動作が ThinkPHP フレームワークにおいて非常に重要であることがわかります。

2. TP5 にはフックが付属しています (タグはすでに TP フレームワークに埋め込まれており、それらを使用するには対応する関数を設定および実装するだけで済みます)

app_init アプリケーション ラベル ビットを初期化する think\App.php の initCommon 関数では、Hook::listen('app_init'); はパラメーターを受け取りません。 think\App.php の run 関数内の

app_begin アプリケーション開始タグは、ルーティングおよびリクエスト情報をロードした後に実行されます。このリクエストのスケジュール情報を保存するパラメータを受け取ります。 think\App.php の module 関数内の
  1. module_init モジュール初期化タグ ビットは、リクエスト コントローラーをロードする前に実行され、パラメーターを受け取り、リクエスト情報を保存します。
  2. action_init コントローラー開始タグ ビットは、think\App.php のモジュール関数内で、コントローラーをロードした後、リフレクションを使用してコントローラーを要求する前に実行されます。配列であるパラメーターを受け取ります。最初の要素はリクエスト コントローラー インスタンス オブジェクトで、2 番目の関数は実行されるコントローラー関数の名前です。
  3. view_filter think\View.php の fetch 関数内のビュー出力フィルター タグ ビットは、パラメーターであるビュー文字列を受け取ります。
  4. app_end アプリケーション終了タグは、think\App.php の run 関数内で、Log を呼び出すときの Hook::listen('app_end');
  5. log_write ログ書き込みメソッド タグです。 :wirte はログの前に実行されます。書き込まれるログ情報であるパラメータを受け取ります。
  6. response_end レスポンス終了タグです。 think\Response.phpのsend関数では、クライアントのリクエストに応答した後に実行されます。
  7. 3. フック関数の登録と監視は think\Hook.php
4 に依存します。システムにはフック関数のみがあり、アプリケーションで使用できます\ 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 関数がなくフックと同名の関数が存在する場合はその関数が実行されます。 (注: フック関数はキャメルケースで名前が付けられており、フック関数名の優先順位は実行関数の優先順位よりも高くなります)

以上がtp5 フレームワークにフックメカニズムを導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。