-
-
Notifications
You must be signed in to change notification settings - Fork 6.9k
Closed
Description
Reopen old issue #3243. Maybe for 2.1
Event as jquery like
1. Trigger event using name
or object
(break BC? yes/no).
Currently, to send event object, it must be as as second parameter of trigger()
. But, event object itself contain name property. Better first parameter can be event name or event object.
// use
Yii::$app->trigger('myEvent');
// or use
$myEvent = new Event('myEvent');
Yii::$app->trigger($myEvent);
2. Use return false;
or $event->stopPropagation()
to stop handling (break BC? no).
Currently to stop event handling we use $event->handled = true
. Prefer using return false
.
Yii::$app->on('myEvent', function($event){
//...
if ($condition){
return false;
// or $event->stopPropagation();
// instead of $event->handled = true;
}
});
Yii::$app->trigger('myEvent');
3. Add extra parameter when trigger event (break BC? no).
Yii::$app->on('myEvent', function($event, $param1, $param2){
// do with $param1 and $param2
});
Yii::$app->trigger('myEvent',['param1', 'param2']);