目次
app_init アプリケーション ラベル ビットを初期化する think\App.php の initCommon 関数では、Hook::listen('app_init'); はパラメーターを受け取りません。 think\App.php の run 関数内の
5. フック関数のバインディング。
ホームページ PHPフレームワーク ThinkPHP tp5 フレームワークにフックメカニズムを導入

tp5 フレームワークにフックメカニズムを導入

May 08, 2021 pm 05:01 PM
tp5

次のチュートリアル コラムでは、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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)