Move Whoops code into its proper place and implement ajax support for json files

This commit is contained in:
Matias Griese 2014-10-15 11:56:09 +03:00
parent 01467e1b32
commit 5586c1923c
3 changed files with 35 additions and 13 deletions

View File

@ -15,19 +15,6 @@ use Grav\Common\Grav;
// Register the auto-loader.
$loader = require_once $autoload;
// Setup Whoops error handler
$whoops = new \Whoops\Run;
$error_page = new \Whoops\Handler\PrettyPageHandler;
$error_page->setPageTitle('Crikey! There was an error...');
$error_page->setEditor('sublime');
$error_page->addResourcePath(__DIR__ .'/system/assets');
$error_page->addCustomCss('whoops.css');
$whoops->pushHandler($error_page);
$whoops->register();
if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC');
}

View File

@ -3,6 +3,7 @@ namespace Grav\Common;
use Grav\Common\Page\Pages;
use Grav\Common\Service\ConfigServiceProvider;
use Grav\Common\Service\ErrorServiceProvider;
use Grav\Common\Service\StreamsServiceProvider;
use RocketTheme\Toolbox\DI\Container;
use RocketTheme\Toolbox\Event\Event;
@ -56,6 +57,8 @@ class Grav extends Container
$container['debugger'] = new Debugger();
$container['debugger']->startTimer('_init', 'Init');
$container->register(new ErrorServiceProvider);
$container['uri'] = function ($c) {
return new Uri($c);
};

View File

@ -0,0 +1,32 @@
<?php
namespace Grav\Common\Service;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
use Whoops\Handler\JsonResponseHandler;
use Whoops\Handler\PrettyPageHandler;
use Whoops\Run;
class ErrorServiceProvider implements ServiceProviderInterface
{
public function register(Container $container)
{
// Setup Whoops error handler
$whoops = new Run;
$error_page = new PrettyPageHandler;
$error_page->setPageTitle('Crikey! There was an error...');
$error_page->setEditor('sublime');
$error_page->addResourcePath(GRAV_ROOT . '/system/assets');
$error_page->addCustomCss('whoops.css');
$json_page = new JsonResponseHandler;
$json_page->onlyForAjaxRequests(true);
$whoops->pushHandler($error_page);
$whoops->pushHandler($json_page);
$whoops->register();
$container['whoops'] = $whoops;
}
}