Сессии предназначены для хранении информации о пользователе при переходе между страницами. При использовании сессий данные хранятся во временных файлах на сервере. Рассмотрим использование сессий в Yii.
use yii\web\Session; // инициализация сессии $session = Yii::$app->session; // проверка сессии на открытие if ($session->isActive) ... // открытие сессии $session->open(); // закрытие сессии $session->close(); // уничтожаем все зарегистрированные сессии $session->destroy();
$session = Yii::$app->session; $session->set('username', 'Ivan'); //или $session['username'] = 'Ivan'; //или $_SESSION['username'] = 'Ivan';
$session = Yii::$app->session; $username = $session->get('username'); //или $username = $session['username']; //или $username = isset($_SESSION['username']) ? $_SESSION['username'] : null;
$session = Yii::$app->session; $session->remove('username'); //или unset($session['username']); //или unset($_SESSION['username']);
if ($session->has('username')) //или if (isset($session['username'])) //или if (isset($_SESSION['username']))
foreach ($session as $session_name => $session_value) echo $session_name.' - '.$session_value; //или foreach ($_SESSION as $session_name => $session_value) echo $session_name.' - '.$session_value;
$session = Yii::$app->session; $session['user'] = [ 'id' => 1, 'username' => 'Ivan', ]; echo $session['user']['id']; echo $session['user']['username']; $session['user.id'] = 1; $session['user.username'] = 'Ivan';Так работать не будет!
$session['user']['id'] = 1; $session['user']['username'] = 'Ivan';
$session = Yii::$app->session; // устанавливаем значение flash сообщения $session->setFlash('username', 'Вы зарегистрированы'); // проверяем наличие сообщения $result = $session->hasFlash('username'); // получаем и отображаем сообщение echo $session->getFlash('username');