developeruz / yii2-custom-errorhandler
Custom error handler for Yii 2.x application
Installs: 696
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 3
Forks: 1
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-11-23 19:32:01 UTC
README
Модуль позволяет повесить свою обработку на исключения (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)