/** * @param BaseApp $app */ public function register(BaseApp $app) { $app->set('errorLogger', function (BaseApp $app) { $logger = new \Monolog\Logger('errorLogger'); $handler = new \Monolog\Handler\ErrorLogHandler(); if (!$app->isCli()) { $handler->pushProcessor(new \Monolog\Processor\WebProcessor()); $format = '%level_name%: %message% %extra.server%%extra.url%'; } else { $format = '%level_name%: %message%'; } $handler->setFormatter(new \Monolog\Formatter\LineFormatter($format, null, true)); $logger->pushHandler($handler); return $logger; }); $app->set('whoopsDebugErrorPageHandler', function (BaseApp $app) { $prettyPageHandler = new \Whoops\Handler\PrettyPageHandler(); if ($app->getConfig()->has('editor')) { $prettyPageHandler->setEditor($app->getConfig()->get('editor')); } return $prettyPageHandler; }); $app->set('whoopsErrorHandler', function (BaseApp $app) { $plainTextHandler = new \Whoops\Handler\PlainTextHandler(); $plainTextHandler->setLogger($app->get('errorLogger')); if (!$app->isCli()) { $plainTextHandler->loggerOnly(true); } return $plainTextHandler; }); $app->set('whoops', function (BaseApp $app) { $whoops = new \Whoops\Run(); if (ini_get('display_errors')) { $whoops->pushHandler($app->get('whoopsDebugErrorPageHandler')); } // Handles cli output and logging $whoops->pushHandler($app->get('whoopsErrorHandler')); return $whoops; }); $app->get('whoops')->register(); }
/** * @param string $action * @param mixed $actionResponse * @return Response */ protected function getDispatchResponse($action, $actionResponse) { if ($actionResponse instanceof Response) { return $actionResponse->prepare($this->request); } elseif ($actionResponse !== null) { return $this->app->get('response')->setContent((string) $actionResponse)->prepare($this->request); } elseif ($this->autoRenderView) { $viewScript = $this->autoRenderViewScript ?: $this->getAutoRenderViewScriptName($this->module, $this->controller, $action); return $this->app->get('response')->setContent($this->view->render($viewScript, true))->prepare($this->request); } else { // Empty response if no other response is set return $this->app->get('response')->setContent('')->prepare($this->request); } }
public function testDestroyAllInstances() { $count = 0; $this->app->set('testObj', function () use(&$count) { $obj = new \stdClass(); $obj->id = ++$count; return $obj; }); $obj1 = $this->app->get('testObj'); $this->app->destroyAllInstances(); $obj2 = $this->app->get('testObj'); $obj3 = $this->app->get('testObj'); $this->assertNotEquals($obj1->id, $obj2->id); $this->assertEquals($obj2->id, $obj3->id); }