Я хотел бы полностью отключить создание отчетов об ошибках, потому что у нас есть очень старый код, который нам еще нужно исправить, но пока он работает (да, мне это тоже не нравится). Мы не можем исправить все за несколько дней, поэтому нам нужно просто подавить предупреждения и исключения, как мы всегда это делали.
Реальная проблема заключается в том, что он уже выдает исключение на простой ленивой ошибке вроде (потому что var не определен)
if(!$var) {
// do whatever
}
пытался
APP_DEBUG = ложь
APP_LOG_LEVEL = аварийный
display_errors(false);
set_error_handler(null);
set_exception_handler(null);
Но это все еще показывает ErrorException
Неопределенная переменная: script_name_vars_def
редактировать: код работает так
web.php
Route::any('/someroute', '[email protected]');
somecontroller.php
public controllerFunc() {
ob_start();
require '/old_index.php';
$html = ob_get_clean();
return response($html);
}
Таким образом, мы используем маршрутизацию Laravel без необходимости переписывать старый код немедленно.
Я знаю, что могу очень легко исправить это предупреждение, но существует множество таких ошибок, и нам нужно использовать маршрутизацию Laravel сейчас. Исправьте проблемы позже.
идеи
- Используйте подстановочный знак в
$dontReport
. - Используйте
@
подавление в нужном месте - Это может быть http://php.net/manual/en/scream.examples-simple.php
изменить, чтобы объяснить, после каких шагов промежуточное программное обеспечение не работает
1) создать промежуточное ПО
php artisan make:middleware SuppressExceptions
2) Напиши это
SuppressExceptions.php
public function handle($request, Closure $next)
{
error_reporting(0);
return $next($request);
}
3) Зарегистрироваться
Laravel/приложение /Http/Kernel.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\SuppressExceptions::class,
],