В Yii 2 были события для виджетов: init, beforeRun, afterRun. Единственное для чего они использовались в ядре — CacheableWidgetBehavior, который при добавлении к виджету делал его кешируемым.
В Yii 3, в отличие от Yii 2, нет behavior-ов и событий уровня объекта. События работают глобально через event dispatcher.
При портировании виджетов мы перенесли также и события, но я что-то задумался, а нужны ли они? Единственным использованием их, о котором я знаю, были behaviors, такие как`CacheableWidgetBehavior`. А вот про глобальное использование вроде того, что в коде ниже, я не знаю:
Код: Выделить всё
Event::on(Widget::class, Widget::EVENT_BEFORE_RUN, function ($event) {
// handle it somehow
});