Phalcon - Управление сеансом
Сеансы - это хранилище информации на стороне сервера, которое помогает пользователю взаимодействовать с веб-сайтом или веб-приложением. Каждый сеанс уникально определяется идентификатором сеанса, который передается на веб-сервер всякий раз, когда браузер делает HTTP-запрос. Идентификатор сеанса каждый раз сопоставляется с внутренней базой данных, так что извлекаются все сохраненные переменные.
Сессии в Phalcon
Phalcon использует компоненты сеанса, которые включают оболочки для доступа к данным сеанса.
Ниже приведены функции Phalcon -
Данные сеанса могут быть изолированы от других компонентов в том же домене.
В соответствии с потребностями приложения значение сеанса можно изменить с помощью адаптера сеанса.
Запуск сеанса в Phalcon
Все действия сеанса связаны с файлами адаптера, которые объявлены в Services.php файл внутри /config папка веб-приложения.
/**
* Start the session the first time some component requests the session service
*/
$di->setShared('session', function () {
$session = new SessionAdapter();
$session->start();
return $session;
});
Создание сеанса
Step 1 - Создайте контроллер сеанса для создания экземпляра сеанса, чтобы данные могли быть извлечены соответствующим образом.
Step 2 - Создайте сеанс с именем и значением.
<?php
class SessionController extends \Phalcon\Mvc\Controller {
public function indexAction() {
//Define a session variable
$this->session->set("user-name", "Omkar");
//Check if the variable is defined
if ($this->session->has("user-name")) {
//Retrieve its value
$name = $this->session->get("user-name");
echo($name);
}
}
}
Приведенный выше код дает следующий результат.
Удаление сеанса
В Phalcon можно уничтожить сеанс или сбросить некоторые значения переменных внутри сеанса.
Ниже приведен синтаксис для сброса значений переменных в сеансе.
$this->session->remove(<variable-name>);
Как показано в приведенном выше примере, имя переменной, созданной в сеансе, равно “data-content” который можно удалить с помощью следующего кода.
public function removeAction() {
// Remove a session variable with associated session
$this->session->remove("data-content");
}
;
Ниже приведен синтаксис для уничтожения всего сеанса.
$this->session->destroy();