ホームページ >PHPフレームワーク >YII >yii2.0 でイベントをバインドする方法

yii2.0 でイベントをバインドする方法

王林
王林オリジナル
2020-02-17 14:20:422340ブラウズ

yii2.0 でイベントをバインドする方法

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。