この記事では、thinkphp に関する関連知識を提供します。主にイベント バインディング、監視、およびサブスクリプションに関連する問題を紹介します。ミドルウェアと比較したイベントの利点は、イベントがミドルウェアよりも優れていることです。 、以下で見てみましょう。皆さんの参考になれば幸いです。

## 推奨学習: 「
PHP ビデオ チュートリアル 」
イベントとは
ミドルウェアと比較したイベントの利点は、イベントがミドルウェアよりも正確に配置され (またはより詳細に)、一部のビジネス シナリオの拡張に適していることです。たとえば、通常、ユーザーは登録やログイン後に一連の操作を実行する必要があります。イベント システムを使用することで、元のコードを侵害することなくログイン操作の拡張を完了でき、ビジネス ニーズを満たしながらシステムの結合を削減できます。 。
TP6のイベントの使い方
公式サイトに説明があり、例はありませんが、ここでは簡単に使い方を説明し、実際に使ってみると操作がわかります
1. イベント listen
listening を生成するコマンド ライン- php think make:listener UserLogin
これは、通常は、対応するイベントの監視を定義するイベント定義ファイル (
event.php) を直接作成することをお勧めします。
1 2 3 4 5 6 7 8 9 10 | return [
'bind' => [
'UserLogin' => 'app\event\UserLogin' ,
],
'listen' => [
'UserLogin' => [ 'app\listener\UserLogin' ],
],
];
|
ログイン後にコピー
2. イベント サブスクリプション
コマンド ライン- php think make:subscribe User
は app\subscribe\ を生成します。デフォルトのユーザー クラスを使用することも、生成する完全なクラス名を指定することもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php
namespace app\subscribe;
class User
{
public function onUserLogin( $user )
{
}
public function onUserLogout( $user )
{
}
}
|
ログイン後にコピー
3. カスタム サブスクリプション
サブスクリプション メソッド (またはメソッド仕様) をカスタマイズする場合は、サブスクライブ メソッドの実装を定義できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php
namespace app\subscribe;
use think\Event;
class User
{
public function onUserLogin( $user )
{
}
public function onUserLogout( $user )
{
}
public function subscribe(Event $event )
{
$event ->listen( 'UserLogin' , [ $this , 'onUserLogin' ]);
$event ->listen( 'UserLogout' ,[ $this , 'onUserLogout' ]);
}
}
|
ログイン後にコピー
次に、イベント定義ファイルにイベント サブスクライバを登録します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | return [
'bind' => [
'UserLogin' => 'app\event\UserLogin' ,
],
'listen' => [
'UserLogin' => [ 'app\listener\UserLogin' ],
],
'subscribe' => [
'app\subscribe\User' ,
],
];
|
ログイン後にコピー
イベント トリガー1 2 3 4 | Event::trigger( 'UserLogin' );
或者使用助手函数
event( 'UserLogin' );
|
ログイン後にコピー
推奨学習:「
PHP ビデオ チュートリアル##」 #》
以上がthinkphp のイベント バインディング、モニタリング、サブスクリプションを完全にマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。