Closed
Description
Не мог понять в чем ошибка. Шаг step-0.3.
При повторном опросе не бросалось исключение. Редактировал сначала в Sublime. Затем перешел на PHPstorm и он сразу показал ошибку.
classAccessOnce extends Behavior
{
public function events()
{
$owner = $this->owner;
if ($owner instanceof Controller) {
return [
$owner::EVENT_BEFORE_ACTION => 'имя_обработчика',
$owner::EVENT_AFTER_ACTION => 'имя_обработчика',
];
}
return parent::events();
}
}
Правильно будет
if ($owner instanceof \yii\web\Controller) {
return [
$owner::EVENT_BEFORE_ACTION => 'checkAccess',
$owner::EVENT_AFTER_ACTION => 'closeDoor',
];
}
То есть не указан неймспейс класса Controller. Из за этого результат проверки всегда была false.
Другая более легкая ошибка.
throw new HttpException(403, $this->message);
// правильно
throw new \yii\web\HttpException(403, $this->message);
Тоже не был указан неймспейс. Но здесь уже сам фреймворк подскажет. А на первую ошибку не ругается, из за этого пришлось потратить время на проверку всего остального.