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 ответ

Решение

Я получил это работает хорошо, сделав следующее:

  1. Убедитесь, что хуки включены в config/config.php

    $config['enable_hooks'] = true;
    
  2. Добавить крючок в config/hooks.php

    $hook['pre_system'][] = array(
      'class'    => 'WhoopsHook',
      'function' => 'bootWhoops',
      'filename' => 'WhoopsHook.php',
      'filepath' => 'hooks',
      'params'   => array()
    );
    
  3. Создать новый файл hooks/WhoopsHook.php со следующим кодом:

    <?php
    class WhoopsHook {
        public function bootWhoops() {
            $whoops = new \Whoops\Run;
            $whoops->pushHandler(new Whoops\Handler\PrettyPageHandler());
            $whoops->register();
        }
    }
    
Другие вопросы по тегам