带有哎呀的 CodeIgniter 3
CodeIgniter 3 with Whoops
我完全无法解决 CI 中发生的任何错误,哎呀,通过向 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 处理程序实例化到不同的地方有点奇怪。
参考:
我通过执行以下操作使其运行良好:
确保钩子在 config/config.php
中启用
$config['enable_hooks'] = true;
在config/hooks.php
中添加一个钩子
$hook['pre_system'][] = array(
'class' => 'WhoopsHook',
'function' => 'bootWhoops',
'filename' => 'WhoopsHook.php',
'filepath' => 'hooks',
'params' => array()
);
使用以下代码创建一个新文件hooks/WhoopsHook.php
:
<?php
class WhoopsHook {
public function bootWhoops() {
$whoops = new \Whoops\Run;
$whoops->pushHandler(new Whoops\Handler\PrettyPageHandler());
$whoops->register();
}
}
我完全无法解决 CI 中发生的任何错误,哎呀,通过向 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 处理程序实例化到不同的地方有点奇怪。
参考:
我通过执行以下操作使其运行良好:
确保钩子在
中启用config/config.php
$config['enable_hooks'] = true;
在
中添加一个钩子config/hooks.php
$hook['pre_system'][] = array( 'class' => 'WhoopsHook', 'function' => 'bootWhoops', 'filename' => 'WhoopsHook.php', 'filepath' => 'hooks', 'params' => array() );
使用以下代码创建一个新文件
hooks/WhoopsHook.php
:<?php class WhoopsHook { public function bootWhoops() { $whoops = new \Whoops\Run; $whoops->pushHandler(new Whoops\Handler\PrettyPageHandler()); $whoops->register(); } }