/** * Retrieve Mobile-detect service * @param \Zend\Http\Headers $oHeaders * @return \Mobile_Detect */ public function __invoke(\Zend\Http\Headers $oHeaders = null) { $oMobileDetect = $this->getServiceLocator()->getServiceLocator()->get('MobileDetect'); if ($oHeaders) { $oMobileDetect->setHttpHeaders($oHeaders->toArray()); $oMobileDetect->setUserAgent($oHeaders->get('user-agent')->getFieldValue()); } return $oMobileDetect; }
/** * Validate the passed mediatype against the appropriate header * * @param string $match * @param HttpHeaders $headers * @return bool */ protected function validateMediaType($match, HttpHeaders $headers) { if (!$headers->has('accept')) { return true; } $accept = $headers->get('accept'); if ($accept->match($match)) { return true; } return false; }
/** * Retrieve Mobile-detect service * * @param \Zend\Http\Headers $oHeaders * * @throws \LogicException * @return \Mobile_Detect */ public function __invoke(\Zend\Http\Headers $oHeaders = null) { $oController = $this->getController(); if (!$oController) { throw new \LogicException('Controller is undefined for MobileDetect controller plugin'); } if ($oHeaders) { $this->mobileDetect->setHttpHeaders($oHeaders->toArray()); $this->mobileDetect->setUserAgent($oHeaders->get('user-agent')->getFieldValue()); } return $this->mobileDetect; }
/** * @param Headers $headers * * @return string|null */ private function getBrowseAcceptLanguage(Headers $headers) { if ($headers->has('Accept-Language')) { /** @var AcceptLanguage $acceptLanguageHeader */ $acceptLanguageHeader = $headers->get('Accept-Language'); $locales = $acceptLanguageHeader->getPrioritized(); $languages = $this->config->getAvailableLanguages(); /** @var LanguageFieldValuePart $locale */ foreach ($locales as $locale) { // Loop through all locales, highest priority first if ($browserLang = \Locale::lookup($languages, $locale->getRaw())) { return $browserLang; } } } return null; }
/** * Get the mediatype from a given header * * @param \Zend\Http\Headers $headers * @param string $header * @return string */ protected function getHeaderType($headers, $header) { if (!$headers->has($header)) { return 'application/json'; } $accept = $headers->get($header); $value = $accept->getFieldValue(); $value = explode(';', $value, 2); $accept = array_shift($value); $accept = strtolower(trim($accept)); switch ($accept) { case 'application/json': case 'application/vnd.zfcampus.v1.config+json': return $accept; default: return 'application/json'; } }
/** * @param Headers $headers * @return self */ public function setExpires(Headers $headers) { if (!empty($this->cacheConfig['expires']['value']) && (!empty($this->cacheConfig['expires']['override']) || !$headers->has('expires'))) { $expires = new Header\Expires(); try { $expires->setDate($this->cacheConfig['expires']['value']); } catch (Header\Exception\InvalidArgumentException $e) { $date = $headers->has('date') ? $headers->get('date')->date() : sprintf('@%s', $_SERVER['REQUEST_TIME']); $expires->setDate($date); } $headers->addHeader($expires); } return $this; }
public function testHeadersCanRemoveHeader() { $headers = new Headers(); $headers->addHeaders(array('Foo' => 'bar', 'Baz' => 'baz')); $header = $headers->get('foo'); $this->assertEquals(2, $headers->count()); $headers->removeHeader($header); $this->assertEquals(1, $headers->count()); $this->assertFalse($headers->get('foo')); }
/** * @param Headers $headers * * @return \SplFileInfo */ public function getStreamPath(Headers $headers) { $filename = null; $directory = sys_get_temp_dir() . DIRECTORY_SEPARATOR . uniqid(); if (!file_exists($directory)) { mkdir($directory, 0775, true); } if (!$this->filename) { if ($headers->has('content-disposition')) { $field = $headers->get('content-disposition')->getFieldValue(); if (preg_match('`filename\\="(.*)"`', $field, $matches)) { $this->filename = basename($matches[1]); } } if (null === $filename) { $this->filename = uniqid(); } } return new \SplFileInfo($directory . DIRECTORY_SEPARATOR . $this->filename); }
/** * Retrieve Mobile-detect service * * @param \Zend\Http\Headers $oHeaders * * @return \Mobile_Detect */ public function __invoke(\Zend\Http\Headers $oHeaders = null) { if ($oHeaders) { $this->mobileDetect->setHttpHeaders($oHeaders->toArray()); $this->mobileDetect->setUserAgent($oHeaders->get('user-agent')->getFieldValue()); } return $this->mobileDetect; }