本文整理匯總了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;
}