глобальный Behavior

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
agrail
Сообщения: 107
Зарегистрирован: 2011.06.19, 23:19

глобальный Behavior

Сообщение agrail »

в 1 yii можно было задать в конфиге свойство behaviors, внутри него повесить на onBeginRequest какое-то действие. Как это сделать теперь? если прописать в конфиге

Код: Выделить всё

'behaviors'=> ['class'=>'common\behaviors\InitBehavior'],
 
То будет ошибка: yii\base\InvalidCallException: Setting read-only property: yii\web\Application::behaviors
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: глобальный Behavior

Сообщение slavcodev »

Код: Выделить всё

[
  'property' => 'value',
  'as behaviorName' => ['class' => 'Namespace\Behavior'],
  'on eventName' => function () {},
] 
Жду Yii 3!
agrail
Сообщения: 107
Зарегистрирован: 2011.06.19, 23:19

Re: глобальный Behavior

Сообщение agrail »

немного не понял)
где прописывать это?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: глобальный Behavior

Сообщение samdark »

В конфиге компонента.
agrail
Сообщения: 107
Зарегистрирован: 2011.06.19, 23:19

Re: глобальный Behavior

Сообщение agrail »

хм...мне нужно обработать событие yii\base\Application::EVENT_BEFORE_REQUEST, это можно сделать через конфигурацию приложения, но я не понимаю, что мне конкретно указать в конфигурации. вот например в момент инициализации приложения нужно выполнить функцию function(){echo 'hello'; exit;} - что мне прописать в конфиге?
dmeroff
Сообщения: 101
Зарегистрирован: 2012.06.05, 14:32
Откуда: Петрозаводск
Контактная информация:

Re: глобальный Behavior

Сообщение dmeroff »

Вот это:

Код: Выделить всё

'on beforeRequest' => function () {
    echo 'hello';
    exit();
},
agrail
Сообщения: 107
Зарегистрирован: 2011.06.19, 23:19

Re: глобальный Behavior

Сообщение agrail »

так дейтсительно заработало, но почему-то только для веб-приложения, в тестах не произошел вызов события. хотя конфиг используется тот же
agrail
Сообщения: 107
Зарегистрирован: 2011.06.19, 23:19

Re: глобальный Behavior

Сообщение agrail »

да, в тестах не работает yii\base\Application::EVENT_BEFORE_REQUEST. Судя по всему, не вызывается yii\base\Application::run(), в котором находятся триггеры
agrail
Сообщения: 107
Зарегистрирован: 2011.06.19, 23:19

Re: глобальный Behavior

Сообщение agrail »

Создал в общем issue https://github.com/yiisoft/yii2/issues/2131
Ответить