/** * Creates an error model * @throws Exception\RuntimeException */ protected function createError(Resources $context, $message, $status = 404) { $response = $context->getResponse(); $config = $context->getConfig(); $layout = $config->value('view.error_layout'); if (!$layout) { throw new Exception\RuntimeException("[ERROR LAYOUT NOT SET] {$message}", 2); } $debug = $config->value('application.environment') == 'development'; $error = array('status' => array('code' => $status, 'text' => Message\HttpStatus::message($status)), 'debug' => $debug); if ($debug) { $error['message'] = $message; $error['backtrace'] = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); } $response->setStatusCode($status); $model = new ViewModel(); $model->setLayout($layout)->setTemplate(false)->setData(['errors' => [$error]]); return $model; }