Skip to content

Suggetion about event. #11389

@mdmunir

Description

@mdmunir

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']);

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions