Как использовать событие ( человеческим языком ) ?
Добавлено: 2016.02.27, 08:16
Hi
Прочитал все доки по событиям , даже просмотрел 2-х часовой курс от Дмитрия Елисеева , но нифига не понятно как РЕАЛЬНО применять события .
Может кто нить посоветовать как реализовать следующее :
Есть сайт , и нужно писать в лог клики юзеров по нему ( лог трафа )
Как я планировал это сделать :
Все контроллеры у меня наследуются от BaseController , а по сему, было бы замечательно сразу после init() делать вызов события типа EVENT_PAGE_REQUEST и вызывать метод класса countRequestPage который бы считал клик.
Вот мой BaseController
и в файл конфигурации conf/web.php я присобачил следующее:
Но ничегошеньки не происходит
Я в ярости ибо по идее должно быть все просто , но везде в мануалах нет какой то досказанности как именно , конкретно , применять эти вещи .
Помогите советом
PS Пока сделал вот так
но хотелось бы не привязываться к конкретному модулю а иметь таки глобальное событие на которое можно было бы реагировать где угодно
Спасибо
Прочитал все доки по событиям , даже просмотрел 2-х часовой курс от Дмитрия Елисеева , но нифига не понятно как РЕАЛЬНО применять события .
Может кто нить посоветовать как реализовать следующее :
Есть сайт , и нужно писать в лог клики юзеров по нему ( лог трафа )
Как я планировал это сделать :
Все контроллеры у меня наследуются от BaseController , а по сему, было бы замечательно сразу после init() делать вызов события типа EVENT_PAGE_REQUEST и вызывать метод класса countRequestPage который бы считал клик.
Вот мой BaseController
Код: Выделить всё
const EVENT_PAGE_REQUEST='EVENT_PAGE_REQUEST';
public function init() {
parent::init();
$this->trigger($this::EVENT_PAGE_REQUEST);
}
и в файл конфигурации conf/web.php я присобачил следующее:
Код: Выделить всё
...
'bootstrap' => ['log', 'maintenanceMode'],
'on EVENT_PAGE_REQUEST' => ['common\modules\partnership\common\models\TrafficLog', 'countRequestPage'],
'modules' => [
....
Но ничегошеньки не происходит
Я в ярости ибо по идее должно быть все просто , но везде в мануалах нет какой то досказанности как именно , конкретно , применять эти вещи .
Помогите советом
PS Пока сделал вот так
Код: Выделить всё
const EVENT_PAGE_REQUEST='EVENT_PAGE_REQUEST';
public function init() {
parent::init();
TrafficLog::countRequestPage();
}
Спасибо