Dans yii2, la liaison d'événement est effectuée via la méthode on de yiibaseComponent. Lorsque nous définissons l'événement, nous devons lui lier une fonction de rappel.
Regardez l'exemple. Écrivez d'abord un contrôleur, utilisez on pour lier l'événement, puis utilisez triggle dans la méthode pour appeler
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); } }
pour accéder à la méthode d'index et obtenir le résultat du événement. Lors de la saisie du contrôleur, une heure est liée à 'event'. Le premier paramètre de on représente le nom de l'événement (doit être une constante), et le deuxième paramètre est la fonction de rappel de cet événement.
(Tutoriel recommandé : yii framework )
peut également s'écrire de la manière suivante :
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 représente cet objet, 'onTest' Fait référence à la méthode d'exécution. Une fois l'événement lié, il est toujours inutile s'il n'est pas appelé. À ce stade, la méthode triggle de la classe yiibaseComponent est utilisée pour l'appeler.
Application étendue des événements (méthode de transmission de paramètres)
Définissez d'abord un contrôleur, puis définissez-le et appelez-le. Si vous souhaitez transmettre différents paramètres, vous devez utiliser yiibaseEvent. la classe est utilisée
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 contient la méthode d'appel
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' } }
Pour plus de contenu lié à la programmation, veuillez visiter la colonne Tutoriel de programmation du site Web PHP chinois !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!