[英]CodeIgniter 3 with Whoops
我無法完全解決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
構造中注冊MY_Controller.php
,它可以工作,但是只有Exception由MY_Controller.php
,這是一個簡單的語法錯誤,例如忘記分號仍由CI錯誤處理程序處理。 將Whoops處理程序部署到不同的地方有點奇怪。
參考: Codeigniter +哎呀
通過執行以下操作,我使其運行良好:
確保在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(); } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.