В Yii2 есть возможность включить собственную обработку ошибок, но есть ли возможность включить собственную обработку искPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 В Yii2 есть возможность включить собственную обработку ошибок, но есть ли возможность включить собственную обработку иск

Сообщение Anonymous »

Yii2 документирует пользовательскую обработку ошибок здесь https://www.yiiframework.com/doc/guide/ ... ing-errors и отделяет обработку ошибок от обработки исключений:
< блоковая цитата>

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

@yii/views/errorHandler/error.php: used when errors should be displayed WITHOUT call stack information. When YII_DEBUG is false, this is the only error view to be displayed.
@yii/views/errorHandler/exception.php: used when errors should be displayed WITH call stack information.
Но это неясно - текст предполагает, что error.php предназначен для производственной среды, а исключение. p>
Дальнейшее предложение по подходу:

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

return [
'components' => [
'errorHandler' => [
'errorAction' => 'site/error',
],
]
];
не учитывает эту разницу.
В моем SiteController есть код:

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

public function actionError()
{
error_log('actionError happens!');

$exception = Yii::$app->errorHandler->exception;
if ($exception instanceof \yii\web\UnauthorizedHttpException) {
Yii::$app->response->statusCode = 401;

$data = new \stdClass();
$data->error = true;
$data->message = $exception->getMessage();
return json_encode($data);
}

$data = new \stdClass();
$data->error = true;
$data->message = 'An internal error occurred.';
return json_encode($data);
}
который регистрирует выполнение (через error_log) и выводит ошибку только в техническом формате, но бывают случаи, когда эта обработка ошибок обходится и все равно @yii/views/errorHandler /Exception.php используется Yii2 для сообщения об ошибке.
Почти всегда обо всех серьезных исключениях сообщается таким образом, например

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

Throwable... Undefined property: stdClass::$sal_tax
Cannot use object of type stdClass as array
сообщаются таким общим способом.
Я бы предпочел свою собственную обработку ошибок - с возможной регистрацией ошибочной ситуации и выводом в технический формат (чтобы мое приложение на стороне браузера или мобильное приложение могло сделать с этим что-то значимое), но я не могу найти, как переопределить встроенную обработку исключений в этих более серьезных ситуациях. И они могут случиться — PHP не проверяет тип.

Подробнее здесь: https://stackoverflow.com/questions/791 ... o-enable-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»