/** * {@inheritdoc} */ public function execute(\Exception $exception) { if (!$this->dependencyInjection->get('environment')->isSilent()) { error_log($exception->getMessage() . " " . $exception->getFile() . "(" . $exception->getLine() . ")"); } $presenter = $this->getPresenter($this->request->getUrl()); $response = new Response(); $response->setStatusCode(500); $response->setContent($exception); if ($exception instanceof HTTPException) { $response->setStatusCode($exception->getStatusCode()); } $event = new ExecutePresenterEvent($this->request, $response); $this->dependencyInjection->get('eventManager')->fire('executePresenter', $event); $presenter->render($this->request, $response); }
/** * Validate url. * * @param Request $request * @param Config $config argument * @param int $position * @return string * @throws RequiredArgumentException */ private function validateUrl(Request $request, $config, $position) { $url = $request->getUrl(); $default = $config->getAttribute('default'); if (preg_match('/^' . $config->getAttribute('pattern') . '$/', $url, $matches) && isset($matches[1])) { return $matches[1]; } else { if ($default !== false) { return $config->getAttribute('default'); } else { throw new RequiredArgumentException($position, $config->getAttribute('name')); } } }