Skip to content

Кастомная обработка ошибок в приложениях Yii 2.x

License

Notifications You must be signed in to change notification settings

developeruz/yii2-custom-errorhandler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Кастомная обработка ошибок в приложениях Yii 2.x

Модуль позволяет повесить свою обработку на исключения (Exception).

###Когда это нужно### Например для отлавливания "опасных" действий пользователя. При возникновении ошибки, вы можете залогировать данные и отследить частоту ForbiddenHttpException или NotFoundHttpException для конкретного пользователя или IP. Таким образом своевременно заблокировать пользователя и/или сообщить администратору о попытке взлома приложения. Самый простой из способов использования модуля - при получении ForbiddenHttpException проверить залогинен ли юзер и если нет - то отправить его на страницу авторизации.

###Установка:###

$ php composer.phar require developeruz/yii2-custom-errorhandler "*"

###Настройка:###

  • В конфиге приложения прописываем action который будет вызываться при возникновении ошибок
 'components' => [
 ...
    'errorHandler' => [
       'errorAction' => 'site/error',
    ],
 ...
  • Настраиваем action, указанный на предыдущем шаге. В моем примере пишем в site контроллер:
 public function actions()
    {
        return [
            'error' => [
                'class' => 'developeruz\yii2_custom_errorhandler\ErrorHandler',
                'array_of_exceptions' => [
                    403 => function()
                    {
                        return $this->redirect(Url::to('/site/login'));
                    }, 
                    500 => function()
                    {
                        //send notification to administrator 
                        ...
                        return $this->redirect(Url::to('/site/index'));
                    }, 
                ]
            ]
        ];
    }

Теперь при возникновении ForbiddenHttpException пользователя будет перекидывать на страницу авторизации. Если обработка ошибки не описана в array_of_exceptions, то она обработается ErrorAction, указанным в параметре $defaultErrorAction (по умолчанию yii\web\ErrorAction)

About

Кастомная обработка ошибок в приложениях Yii 2.x

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages