Laravel打破了PHP通知的整个应用程序

时间:2013-08-28 20:40:47

标签: php laravel

如何使Laravel 4或5忽略PHP通知(如未定义的变量通知)并且不会因为简单的'未定义的索引或变量'PHP通知而破坏整个应用程序?

我可以在Laravel 3上设置config / error.php中的'ignore'数组。但我无法在Laravel 4或5中找到如何做到这一点。

3 个答案:

答案 0 :(得分:10)

此行为是由于将错误报告设置为-1。这是Laravel的默认行为 - 如果您使用Laravel 4,请参阅vendor/laravel/framework/src/illuminate/Foundation/start.php中的第14行;如果您使用的是Laravel 5,请参阅vendor/laravel/framework/src/illuminate/Foundation/Bootstrap/HandleExceptions.php中的第29行:

error_reporting(-1); // Reports everything

Laravel的错误处理程序会尊重您的error_reporting级别,并会忽略您告诉PHP不要报告的任何错误。值得一提的是,更改错误报告级别并不是一个好主意。但是要覆盖之前的说明,您可以在app/start/global.php(在Laravel 4中)或app/bootstrap/app.php(在Laravel 5中)中添加错误报告首选项

error_reporting(E_ALL ^ E_NOTICE); // Ignores notices and reports all other kinds

同样,这不是一个解决方案。这只是你要求的。所有和任何错误,警告,通知等都可以而且应该修复。

您可以在此处查看错误报告的所有常量:http://www.php.net/manual/en/errorfunc.constants.php

您可以在此处获取有关如何使用error_reporting的更多信息:http://php.net/manual/en/function.error-reporting.php

答案 1 :(得分:8)

在Laravel 5.1中,您可以将error_reporting(0)或任何您想要的内容添加到\ app \ Providers \ AppServiceProvider.php boot()方法

答案 2 :(得分:-1)

对于laravel 5.0评论后面的行

throw new ErrorException($message, 0, $level, $file, $line);


           vendor / laravel / framework / src / Illuminate / Foundation / Bootstrap / HandleExceptions.php