/** * {@inheritdoc} */ public function getData() { $data = parent::getData(); if (!isset($data['message'])) { $data['message'] = $this->message; } if ($this->logref !== null && !isset($data['@logref'])) { $data['@logref'] = $this->logref; } return $data; }
/** * @param Hal $hal * @param bool $isRoot * * @return array */ protected function flattenHal(Hal $hal, $isRoot = true) { $data = $hal->getData(); foreach ($hal->getResources() as $name => $items) { $data[$name] = []; foreach ($items as $item) { $data[$name][] = $this->flattenHal($item); } } return $data; }
/** * Returns the data for output and sets the appropriate headers * @param \Nocarrier\Hal $hal * @return string */ public function renderOutput(\Nocarrier\Hal $hal) { $this->sendHeaders(); if ($this->getSystemErrors()) { $system_errors = array(); foreach ($this->getSystemErrors() as $key => $value) { $system_errors[$key] = $this->m62Lang($key); } $hal->setData($hal->getData() + array('_system_errors' => $system_errors)); } if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos(strtolower($_SERVER['HTTP_ACCEPT_ENCODING']), 'xml') !== false) { header('Content-Type: application/hal+xml'); return $hal->asXml(true); } else { header('Content-Type: application/hal+json'); return $hal->asJson(true); } }
public static function fromException(\Exception $exception, $prettyPrint = true, $debug = false) { $statusCode = self::extractStatus($exception); $headers = self::extractHeaders($exception); $message = self::extractMessage($exception, $debug); if ($exception instanceof HalException) { $hal = $exception->getHal(); } else { $hal = new Hal(null, ['message' => $message]); } $data = $hal->getData(); if (!isset($data['message']) || '' === $data['message']) { if ($message) { $data['message'] = $message; } elseif (isset(Response::$statusTexts[$statusCode])) { $data['message'] = Response::$statusTexts[$statusCode]; } $hal->setData($data); } return new static($hal, $statusCode, $headers, $prettyPrint); }
public function __construct(Hal $resource) { $this->hal = $resource; $this->setPaginator($resource->getData()); }
/** * Get loaded data (including messages) * * @return array */ public function getData() { $data = parent::getData(); $data['_messages'] = $this->messages; return $data; }