CodeIgniter 3 с упс
Я не могу заставить это работать для любой ошибки, произошедшей в 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);
}
К сожалению, обработать ошибку произошла в index.php
файл, но не тогда, когда ошибка возникает в контроллере или модели, кажется, что обработчик ошибок CI вроде бы сначала ловит ошибку, прежде чем это делает Whoops.
Следующая попытка была также зарегистрировать Whoops в MY_Controller.php
Конструкция, это работает, но только Exception был обработан Whoops, простая синтаксическая ошибка, такая как забытая точка с запятой до сих пор обрабатывается обработчиком ошибок CI. Это довольно странная мысль, например, к обработчику Whoops в разных местах.
Ссылка: Codeigniter + Whoops
1 ответ
Я получил это работает хорошо, сделав следующее:
Убедитесь, что хуки включены в
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(); } }