public static function enableDebug() { // 设置 PHP 调试环境 ini_set('display_errors', 1); error_reporting(E_ALL | E_STRICT); // 开启 debug log BzfDebug::startDebugLogCollector(); // 当前目录 autoload \Core\Plugin\SystemHelper::addAutoloadPath(realpath(dirname(__FILE__))); $handler = new \Whoops\Handler\PrettyPageHandler(); // 增加额外的日志输出 $handler->addDataTableCallback('LOGS', function () { // 取得 logCollector $logCollector = BzfDebug::startDebugLogCollector(); $logArray = $logCollector->getLogArray(); // 由于 debug 只支持 key-->value 显示,我们只能简单一点了 $displayArray = array(); $index = 0; foreach ($logArray as $logItem) { $displayArray['' . sprintf('%02d', $index) . '|' . str_pad($logItem['level'], 10, ' ', STR_PAD_LEFT) . '|' . $logItem['source']] = $logItem['msg']; $index++; } return $displayArray; }); $run = new \Whoops\Run(); $run->pushHandler($handler); $run->register(); }
<?php /** * DEVELOPMENT MODE */ /** * Debug stacktrace using WHOOPS */ $app->config->catch = false; $handler = new Whoops\Handler\PrettyPageHandler(); $handler->addDataTableCallback('App Uri', function () use($app) { return (array) $app->context->request->uri; }); $handler->addDataTableCallback('App Route', function () use($app) { return (array) $app->context->route; }); $handler->addDataTableCallback('App Invokable', function () use($app) { $invokable = $app->context->invokable; array_shift($invokable->params); return (array) $invokable; }); $handler->addDataTableCallback('App Access', function () use($app) { return (array) $app->context->access; }); $handler->addDataTableCallback('App Response', function () use($app) { return (array) $app->context->response; }); $whoops = new Whoops\Run(); $whoops->pushHandler($handler)->register(); /** * Vardump
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL & ~E_NOTICE); require 'instance.php'; /** * Authentication setup */ use Colorium\Stateful\Auth; use Pictobox\Model\User; Auth::factory(function ($id) { return User::one(['id' => $id]); }); /** * Debug mode */ use Colorium\Http; $request = Http\Request::globals(); $request->local[] = '10.0.2.2'; if ($request->local()) { $app->catch = false; $handler = new Whoops\Handler\PrettyPageHandler(); $handler->addDataTableCallback('App Request', function () use($request) { return (array) $request; }); $whoops = new Whoops\Run(); $whoops->pushHandler($handler)->register(); } /** * Execute default context */ $app->run()->end();