Страница 1 из 1

Нужны ли события в виджетах?

Добавлено: 2020.01.24, 01:54
samdark
https://github.com/yiisoft/widget/issues/5

В 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
});

Re: Нужны ли события в виджетах?

Добавлено: 2020.01.24, 11:36
AlikDex
Кому надо, могут и руками в принципе триггернуть.

Re: Нужны ли события в виджетах?

Добавлено: 2020.01.24, 16:00
maleks
Тоже сам не сталкивался с необходимостью использовать глобальные да и обычные события в виджетах.
Но вдруг кто то и использует, для цмс-ных штук например, может кто то помнит theme developer в друпале?, где он каждому элементу на странице фронта добавляет рамку и контекстную менюшку с дебаг информацией.

Re: Нужны ли события в виджетах?

Добавлено: 2020.01.25, 01:44
samdark
maleks, это делается выставлением элемента class для виджетов. Далее навешивается меню уже через JS.

В итоге события убиты.