protected function negotiateLanguage() { if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $found = false; $langList = Util::sortByPriority($_SERVER['HTTP_ACCEPT_LANGUAGE']); foreach ($langList as $lang => $quality) { foreach (Defaults::$supportedLanguages as $supported) { if (strcasecmp($supported, $lang) == 0) { $found = true; Defaults::$language = $supported; break 2; } } } if (!$found) { if (strpos($_SERVER['HTTP_ACCEPT_LANGUAGE'], '*') !== false) { //use default language } else { //ignore } } } }
/** * An initialize function to allow use of the restler error generation * functions for pre-processing and pre-routing of requests. */ public function init() { if (Defaults::$crossOriginResourceSharing && $this->requestMethod == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) { header('Access-Control-Allow-Methods: ' . Defaults::$accessControlAllowMethods); } if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) { header('Access-Control-Allow-Headers: ' . $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']); } exit(0); } if (empty($this->formatMap)) { $this->setSupportedFormats('JsonFormat'); } $this->url = $this->getPath(); $this->requestMethod = Util::getRequestMethod(); $this->responseFormat = $this->getResponseFormat(); $this->requestFormat = $this->getRequestFormat(); $this->responseFormat->restler = $this; if (is_null($this->requestFormat)) { $this->requestFormat = $this->responseFormat; } else { $this->requestFormat->restler = $this; } if (isset($_SERVER['HTTP_ACCEPT_CHARSET'])) { $found = false; $charList = Util::sortByPriority($_SERVER['HTTP_ACCEPT_CHARSET']); foreach ($charList as $charset => $quality) { if (in_array($charset, Defaults::$supportedCharsets)) { $found = true; Defaults::$charset = $charset; break; } } if (!$found) { if (strpos($_SERVER['HTTP_ACCEPT_CHARSET'], '*') !== false) { //use default charset } else { $this->handleError(406, 'Content negotiation failed. ' . "Requested charset is not supported"); } } } if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $found = false; $langList = Util::sortByPriority($_SERVER['HTTP_ACCEPT_LANGUAGE']); foreach ($langList as $lang => $quality) { foreach (Defaults::$supportedLanguages as $supported) { if (strcasecmp($supported, $lang) == 0) { $found = true; Defaults::$language = $supported; break; } } } if (!$found) { if (strpos($_SERVER['HTTP_ACCEPT_LANGUAGE'], '*') !== false) { //use default language } else { //ignore } } } }
protected function negotiateLanguage() { $accept_language = null; if (is_null($this->requestFromObject)) { if (array_key_exists('HTTP_ACCEPT_LANGUAGE', $_SERVER)) { $accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE']; } } else { $accept_language = $this->requestFromObject->getHeader()->get('Accept-Language'); if (!is_null($accept_language)) { $accept_language = $accept_language->getValue(); } } if (!is_null($accept_language)) { $found = false; $langList = Util::sortByPriority($accept_language); foreach ($langList as $lang => $quality) { foreach (Defaults::$supportedLanguages as $supported) { if (strcasecmp($supported, $lang) == 0) { $found = true; Defaults::$language = $supported; break 2; } } } if (!$found) { if (strpos($accept_language, '*') !== false) { //use default language } else { //ignore } } } }