コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
 /**
  * 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;
 }
コード例 #3
0
 /**
  * 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;
 }
コード例 #4
0
ファイル: LangRecognizer.php プロジェクト: omusico/zf2-demo
 /**
  * @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;
 }
コード例 #5
0
 /**
  * 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';
     }
 }
コード例 #6
0
 /**
  * @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;
 }
コード例 #7
0
ファイル: HeadersTest.php プロジェクト: JojoBombardo/zf2
 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'));
 }
コード例 #8
0
ファイル: Http.php プロジェクト: continuousphp/deploy-agent
 /**
  * @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);
 }
コード例 #9
-2
 /**
  * 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;
 }