Skip to content

Commit f4cf726

Browse files
committed
allow to disable session&cookies in LanguageManager
1 parent 8037c51 commit f4cf726

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/components/LanguageManager.php

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ class LanguageManager extends Component implements ILanguageManager
2727
*/
2828
public $languages = [];
2929

30+
/** @var bool Use session to set/get language */
31+
public $languageSession = true;
32+
33+
/** @var bool Use cookie to set/get language */
34+
public $languageCookie = true;
35+
3036
/** @var string */
3137
public $languageSessionKey = '_language';
3238

@@ -49,8 +55,12 @@ public function init()
4955
{
5056
parent::init();
5157

52-
$slug = Yii::$app->session->get($this->languageSessionKey);
53-
if ($slug === null) {
58+
$slug = null;
59+
60+
if ($this->languageSession) {
61+
$slug = Yii::$app->session->get($this->languageSessionKey);
62+
}
63+
if ($slug === null && $this->languageCookie) {
5464
$slug = Yii::$app->request->getCookies()->getValue($this->languageCookieName);
5565
}
5666

@@ -100,9 +110,12 @@ public function setLanguage(ILanguage $language)
100110
$this->_language = $language;
101111

102112
$slug = $language->getSlug();
103-
Yii::$app->session[$this->languageSessionKey] = $slug;
104113

105-
if ($this->languageCookieDuration) {
114+
if ($this->languageSession) {
115+
Yii::$app->session[$this->languageSessionKey] = $slug;
116+
}
117+
118+
if ($this->languageCookie) {
106119
$cookie = new Cookie(array_merge(
107120
['httpOnly' => true],
108121
$this->languageCookieOptions,

0 commit comments

Comments
 (0)