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();