Yii2: Шпаргалки по сессиям
В этой шпаргалке я опубликую несколько заметок по работе с сессиями.
В Yii Framework 2 что-бы обратиться к сессии используется вот такая конструкция:
$session = Yii::$app->session;
Что бы записать в сессию пару ключ/значение используется вот такой простой запрос:
$session->set('name', $name);
В данном случае метод set() сам проверяет открыта ли сессия, и если нет сам открывает её. Теперь подобные рутинные задачи лежат на плечах фреймворка.
Ну и соотвественно для удаления сессии используйте метод remove()
$session->remove('name');
А теперь давайте передадим данные из сессии в представление:
return $this->render('rewiews',[ 'rewiews' => $rewiews, 'name' => Yii::$app->session->get('name') ]);
Ну и напоследок приведу примеры классических запросов в PHP с их эквивалентными методами в Yii Framework 2:
$session = Yii::$app->session; // Получаем данные из сессий: $language = $session->get('language'); $language = $session['language']; $language = isset($_SESSION['language']) ? $_SESSION['language'] : null; // Получаем данные из сессий: $session->set('language', 'en-US'); $session['language'] = 'en-US'; $_SESSION['language'] = 'en-US'; // Удаляем данные из сессий: $session->remove('language'); unset($session['language']); unset($_SESSION['language']); // Проверяем существует ли такая переменная в сессиях: if ($session->has('language')) ... if (isset($session['language'])) ... if (isset($_SESSION['language'])) ... // Получить все переменные в сессии: foreach ($session as $name => $value) ... foreach ($_SESSION as $name => $value) ...