我无法完全解决 CI 中发生的任何错误,Whoops 通过将处理程序添加到index.php
.
switch (ENVIRONMENT)
{
case 'development':
error_reporting(-1);
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
$whoops->register();
throw new Exception("Whoops exception testing");
break;
case 'testing':
break;
case 'production':
break;
default:
exit(1);
}
Whoops 处理index.php
文件中发生的错误,但在 Controller 或 Model 中发生错误时不处理,似乎 CI 错误处理程序在 Whoops 之前先捕获了错误。
下一次尝试也是在MY_Controller.php
构造中注册 Whoops,它可以工作,但只有 Exception 由 Whoops 处理,一个简单的语法错误,如忘记分号仍然由 CI 错误处理程序处理。将 Whoops 处理程序实例化到不同的地方有点奇怪。
参考: Codeigniter + 哎呀