Yii2: Обработка ошибок

 

Обработка ошибок в Yii 2

Обработчик ошибок включен в Yii 2 по умолчанию. Отключить его можно добавив следующий код в стартовый скрипт приложения web/index.php:

Конфигурация по умолчанию

В шаблонах приложений Yii 2 basic и advanced обработчик ошибок подключен как компонент приложения errorHandler. Рассмотрим примеры конфигурации:

  • приложение basic: config/web.php;
  • приложение advanced: индивидуальные настройки для каждого из приложений frontend/config/main.php и backend/config/main.php.

Минимальная конфигурация обработчика ошибок использует site/error для отображения ошибок и исключений.

В данном случае нет необходимости в явном создании действия actionError в контроллере SiteController. Если заглянуть в файл SiteController.php, можно увидеть, что там использовано встроенное действие yii\web\ErrorAction, которое отображает информацию через представление views/site/error.php.

Настройка представления и шаблона

Возьмем за основу вышеописанную стандартную конфигурацию.

Представление описывается свойством view класса yii\web\ErrorAction:

В тоже время, шаблон для вывода сообщений об ошибках, можно изменить двумя способами:

1. Явно указав нужный шаблон в файле представления:

2. Указать шаблон в методе beforeAction() класса SiteController:

Свой обработчик ошибок

При необходимости, возможно создание своего метода для обработки ошибок. Например, создадим действие site/fault в контроллере SiteController:

И подключим его в конфигурационном файле:

Готово. Теперь все ошибки будут обрабатываться новым методом actionFault() контроллера SiteController.

Можно удалить описание ненужного действия site/error:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *