21    {
   22        if (!$di) {
   23            $di = DI::getDefault();
   24        }
   25 
   26        
   27        $di->setShared('whoops.pretty_page_handler', function () {
   28            return new PrettyPageHandler();
   29        });
   30 
   31        
   32        $di->setShared('whoops.json_response_handler', function () {
   33            $jsonHandler = new JsonResponseHandler();
   34            $jsonHandler->onlyForAjaxRequests(true);
   35            return $jsonHandler;
   36        });
   37 
   38        
   39        
   40        
   41        
   42        
   43        $phalcon_info_handler = function () use ($di) {
   44            try {
   45                $request = $di['request'];
   46            } catch (Exception $e) {
   47                
   48                
   49                return;
   50            }
   51 
   52            
   53            $di['whoops.pretty_page_handler']->addDataTable('Phalcon Application (Request)', array(
   54                'URI'         => $request->getScheme().'://'.$request->getServer('HTTP_HOST').$request->getServer('REQUEST_URI'),
   55                'Request URI' => $request->getServer('REQUEST_URI'),
   56                'Path Info'   => $request->getServer('PATH_INFO'),
   57                'Query String' => $request->getServer('QUERY_STRING') ?: '<none>',
   58                'HTTP Method' => $request->getMethod(),
   59                'Script Name' => $request->getServer('SCRIPT_NAME'),
   60                
   61                
   62                'Scheme'      => $request->getScheme(),
   63                'Port'        => $request->getServer('SERVER_PORT'),
   64                'Host'        => $request->getServerName(),
   65            ));
   66        };
   67 
   68        $di->setShared('whoops', function () use ($di,$phalcon_info_handler) {
   69            $run = new Run();
   70            $run->pushHandler($di['whoops.pretty_page_handler']);
   71            $run->pushHandler($phalcon_info_handler);
   72            $run->pushHandler($di['whoops.json_response_handler']);
   73            return $run;
   74        });
   75 
   76        $di['whoops']->register();
   77    }