Lab / YII

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) ...