Подскажите как выполнить код до любого экшна любого контроллера

Столкнулся с необходимостью выполнять проверку и SetFlash при выполнении любого контроллера, любого экшна.

писать в каждом отдельном код, вроде не совсем правильно будет. Подскажите, как бы сделать это правильнее, может на эвент какой-то навесить можно. Если так, то на какой, и каким образом, не переписывая исходники фреймворка.

http://www.yiiframework.com/doc/api/1.1/CController#beforeAction-detail

Реализовать метод в базовом классе, а остальные контроллеры наследовать от него.

Да, так почти и сделал (переопределил init() ) … но вот думал может можно какое-то событие заюзать, хотя, можно сказать onBeforeAction() наверное и есть событие

благодарю.

У объекта приложения есть только такие события: http://www.yiiframework.com/doc/api/1.1/CWebApplication#events

onBeginRequest - слишком рано, onEndRequest - уже поздно :) Тем более мне кажется, что если внезапно для какого-то контроллера/экшена эта операция не потребуется, то вариант с базовым контроллером окажется в выигрыше :)

Возникла такая же проблема. Вот здесь описание моего решения: fit-media.com/comment_1313836666.html

Работает прекрасно и вроде не нарушает концепции фреймворка.

Комментарии и критика приветствуются. :rolleyes: