Example #1
0
 /**
  * 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;
 }