Если вы не хотите прерывать рабочий процесс для определенных типов PHP ошибок, вам нужно будет отключить обработчик ошибок зарегистрированного Laravel для этих ошибок.
Laravel регистрирует обработку ошибок в Illuminate/Foundation/Bootstrap/HandleExceptions.php
. Этот загрузчик является одним из нескольких, который вызывается, когда ваше ядро Http обрабатывает запрос.
Хотя есть несколько способов сделать то, что вы хотите сделать, я считаю, что проще всего обработать событие, которое запускается после вызова этого загрузчика. В обработчике событий вы можете сбросить обработчик ошибок для ошибок, которые вы не хотите обрабатывать Laravel.
В файле bootstrap/app.php
, добавьте следующую строку перед $app
возвращается:
$app->afterBootstrapping(
'Illuminate\Foundation\Bootstrap\HandleExceptions',
function ($app) {
set_error_handler(function ($level, $message, $file = '', $line = 0, $context = []) {
// Check if this error level is handled by error reporting
if (error_reporting() & $level) {
// Return false for any error levels that should
// be handled by the built in PHP error handler.
if ($level & (E_WARNING | E_NOTICE | E_DEPRECATED)) {
return false;
}
// Throw an exception to be handled by Laravel for all other errors.
throw new ErrorException($message, 0, $level, $file, $line);
}
});
}
);
Чтение вопроса, а затем ваш ник заставил меня хихикать, потому что это было именно то, что я думал после прочтения его :) в любом случае, +1 от меня для правильного ответа. –