yii2 では、イベント バインディングは yii\base\Component の on メソッドを通じて操作されます。イベントを定義するときに、それにコールバック関数をバインドする必要があります。
例を見てください。まずコントローラーを作成し、 on を使用してイベントをバインドし、次にメソッド内で triggle を使用して
namespace backend\controllers; use yii\web\Controller; class EventController extends Controller { const TEST_EVENT = 'event'; public function init() { parent::init(); $this->on(self::TEST_EVENT,function(){echo '这个一个事件测试。。。';}); } public function actionIndex() { $this->trigger(self::TEST_EVENT); } }
を呼び出し、インデックス メソッドにアクセスし、その結果を取得します。イベント。コントローラーに入るとき、時刻は 'event' にバインドされます。on の最初のパラメーターはイベント名 (定数である必要があります) を表し、2 番目のパラメーターはこのイベントのコールバック関数です。
(推奨チュートリアル: yii フレームワーク)
は次のように記述することもできます:
namespace backend\controllers; use yii\web\Controller; class EventController extends Controller { const TEST_EVENT = 'event'; public function init() { parent::init(); $this->on(self::TEST_EVENT,[$this,'onTest']); } public function onTest() { echo '这个一个事件测试。。。'; } public function actionIndex() { $this->trigger(self::TEST_EVENT); } }
$this はこのオブジェクト 'onTest' を表します実行方法を指します。イベントをバインドした後は呼び出さないと意味がないので、このときは yii\base\Component クラスの triggle メソッドを使って呼び出します。
イベントの拡張アプリケーション (パラメータ渡しメソッド)
最初にコントローラを定義し、それを定義して呼び出します。別のパラメータを渡したい場合は、yii を実行する必要があります。 \base\Event クラスが使用されています
class EventController extends Controller { const TEST_USER = 'email'; //发送邮件 public function init() { parent::init(); $msg = new Msg(); $this->on(self::TEST_USER,[$msg,'Ontest'],'参数Test'); } public function actionTest() { $msgEvent = new MsgEvent(); $msgEvent->dateTime = 'Test时间'; $msgEvent->author = 'Test作者'; $msgEvent->content = 'Test内容'; $this->trigger(self::TEST_USER,$msgEvent); } }
class MsgEvent extends Event { public $dateTime; // 时间 public $author; // 作者 public $content; // 内容 }
msg には呼び出しメソッドが含まれています
class Msg extends ActiveRecord { public function onTest($event) //$event是yii\base\Event的对象 { print_r($event->author);//输出'Test作者' print_r($event->dateTime);//输出'Test时间' print_r($event->content);//输出'Test内容' print_r($event->data);//输出'参数Test' } }
プログラミング関連のコンテンツの詳細については、php 中国語 Web サイトをご覧くださいプログラミング チュートリアルcolumn!
以上がyii2.0 でイベントをバインドする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。