當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Request::getSchemeAndHttpHost方法代碼示例

本文整理匯總了PHP中Thelia\Core\HttpFoundation\Request::getSchemeAndHttpHost方法的典型用法代碼示例。如果您正苦於以下問題:PHP Request::getSchemeAndHttpHost方法的具體用法?PHP Request::getSchemeAndHttpHost怎麽用?PHP Request::getSchemeAndHttpHost使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Thelia\Core\HttpFoundation\Request的用法示例。


在下文中一共展示了Request::getSchemeAndHttpHost方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: detectLang

 /**
  * @param  TheliaRequest $request
  * @return null|\Thelia\Model\Lang
  */
 protected function detectLang(TheliaRequest $request)
 {
     // first priority => lang parameter present in request (get or post)
     if ($request->query->has("lang")) {
         // The lang parameter may contains a lang code (fr, en, ru) for Thelia < 2.2,
         // or a locale (fr_FR, en_US, etc.) for Thelia > 2.2.beta1
         $requestedLangCodeOrLocale = $request->query->get("lang");
         if (strlen($requestedLangCodeOrLocale) > 2) {
             $lang = LangQuery::create()->findOneByLocale($requestedLangCodeOrLocale);
         } else {
             $lang = LangQuery::create()->findOneByCode($requestedLangCodeOrLocale);
         }
         if (is_null($lang)) {
             return Lang::getDefaultLanguage();
         }
         // if each lang has its own domain, we redirect the user to the proper one.
         if (ConfigQuery::isMultiDomainActivated()) {
             $domainUrl = $lang->getUrl();
             if (!empty($domainUrl)) {
                 // if lang domain is different from current domain, redirect to the proper one
                 if (rtrim($domainUrl, "/") != $request->getSchemeAndHttpHost()) {
                     // TODO : search if http status 302 is the good one.
                     return new RedirectResponse($domainUrl, 302);
                 } else {
                     //the user is currently on the proper domain, nothing to change
                     return null;
                 }
             }
             Tlog::getInstance()->warning("The domain URL for language " . $lang->getTitle() . " (id " . $lang->getId() . ") is not defined.");
             return Lang::getDefaultLanguage();
         } else {
             // one domain for all languages, the lang has to be set into session
             return $lang;
         }
     }
     // Next, check if lang is defined in the current session. If not we have to set one.
     if (null === $request->getSession()->getLang(false)) {
         if (ConfigQuery::isMultiDomainActivated()) {
             // find lang with domain
             return LangQuery::create()->filterByUrl($request->getSchemeAndHttpHost(), ModelCriteria::LIKE)->findOne();
         }
         // At this point, set the lang to the default one.
         return Lang::getDefaultLanguage();
     }
     return null;
 }
開發者ID:hadesain,項目名稱:thelia,代碼行數:50,代碼來源:ParamInitMiddleware.php


注:本文中的Thelia\Core\HttpFoundation\Request::getSchemeAndHttpHost方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。