/** * Return all header parameters or a single header parameter. * * @param string $header Header name to retrieve, or null to get all. * @param mixed $default Default value to use when the requested header is missing. * @return null|\Zend\Http\Header\HeaderInterface */ public function fromHeader($header = null, $default = null) { if ($header === null) { return $this->request->getHeaders($header, $default)->toArray(); } return $this->request->getHeaders($header, $default); }
/** * Check if request has certain content/Accept type of RestApi * * @param Request $request * @return bool */ public function requestCheckEventType(Request $request) { $headers = $request->getHeaders(); if (!$headers->has('Accept')) { // can't determine what we can accept return false; } $accept = $headers->get('Accept')->toString(); if (stripos($accept, 'application/json') == false) { // does not match JSON return false; } return true; }
/** * Check if request has certain content type * * @return boolean */ public function requestHasContentType(Request $request, $contentType = '') { /** @var $headerContentType \Zend\Http\Header\ContentType */ $headerContentType = $request->getHeaders()->get('content-type'); if (!$headerContentType) { return false; } $requestedContentType = $headerContentType->getFieldValue(); if (strstr($requestedContentType, ';')) { $headerData = explode(';', $requestedContentType); $requestedContentType = array_shift($headerData); } $requestedContentType = trim($requestedContentType); if (array_key_exists($contentType, $this->contentTypes)) { foreach ($this->contentTypes[$contentType] as $contentTypeValue) { if (stripos($contentTypeValue, $requestedContentType) === 0) { return true; } } } return false; }