Учебники

Zend Framework — Управление сессиями

Сессия является очень важной концепцией в веб-приложении. Он предоставляет возможность сохранять данные пользователя на веб-сервере в течение ограниченного периода времени. Zend Framework предоставляет отдельный компонент, Zend -session для обработки информации о сеансе.

Установите компонент сеанса

Сессионный компонент может быть установлен с помощью Composer, как указано ниже —

composer require zendframework/zend-session 

Сессионные компоненты

Zend Framework предоставляет шесть компонентов для управления сессиями. Все эти компоненты были объяснены ниже —

  • Zend \ Session \ Container — основной API для чтения и записи информации о сеансе.

  • Zend \ Session \ SessionManager — используется для управления всем жизненным циклом сеанса.

  • Zend \ Session \ Storage — используется для указания того, как данные сеанса будут храниться в памяти.

  • Zend \ Session \ SaveHandler — используется для хранения и извлечения данных сеанса в физическом месте, таком как RDBMS, Redis, MangoDB и т. Д.

  • Zend \ Session \ Validator — используется для защиты сессии от перехвата путем перекрестной проверки удаленного адреса исходного и последующего запроса и пользовательского агента.

  • Zend \ Session \ Config \ SessionConfig — используется для настройки поведения сессии.

Zend \ Session \ Container — основной API для чтения и записи информации о сеансе.

Zend \ Session \ SessionManager — используется для управления всем жизненным циклом сеанса.

Zend \ Session \ Storage — используется для указания того, как данные сеанса будут храниться в памяти.

Zend \ Session \ SaveHandler — используется для хранения и извлечения данных сеанса в физическом месте, таком как RDBMS, Redis, MangoDB и т. Д.

Zend \ Session \ Validator — используется для защиты сессии от перехвата путем перекрестной проверки удаленного адреса исходного и последующего запроса и пользовательского агента.

Zend \ Session \ Config \ SessionConfig — используется для настройки поведения сессии.

Конфигурации по умолчанию достаточно для работы с сеансом. Используя вышеупомянутые компоненты, все аспекты сеанса могут быть легко обработаны.

Пример компонента сеанса

Давайте придерживаться следующих пунктов, чтобы создать новую страницу для понимания сеанса в среде Zend. По умолчанию достаточно создать экземпляр класса Container для управления сеансами.

  • Создайте новое действие sessionAction в TutorialController .

  • Инициализируйте объект- контейнер .

Создайте новое действие sessionAction в TutorialController .

Инициализируйте объект- контейнер .

$c = new Container();
  • Проверьте, существует ли произвольное количество ключей. Если ключ недоступен, инициализируйте счет со значением 1. Если он доступен, увеличьте значение, как показано в следующем коде.

Проверьте, существует ли произвольное количество ключей. Если ключ недоступен, инициализируйте счет со значением 1. Если он доступен, увеличьте значение, как показано в следующем коде.

if (!isset($c->count)) { 
   $c->count = 0; 
} else { 
   $c->count++; 
} 
  • Зарегистрируйте счетчик в ViewModel.

  • Создайте файл шаблона для — sessionAction, session.phtml в myapp / module / Tutorial / view / tutorial / tutorial / session.phtml и затем отобразите значение счетчика .

  • Обновление страницы увеличит значение счетчика в сеансе. Полный список выглядит следующим образом —

Зарегистрируйте счетчик в ViewModel.

Создайте файл шаблона для — sessionAction, session.phtml в myapp / module / Tutorial / view / tutorial / tutorial / session.phtml и затем отобразите значение счетчика .

Обновление страницы увеличит значение счетчика в сеансе. Полный список выглядит следующим образом —

TutorialController.php

public function sessionAction() { 
   $c = new Container();  
   if (!isset($c->count)) { 
      $c->count = 0; 
   } else { 
      $c->count++; 
   }  
   $view = new ViewModel([ 
      'count' => $c->count, 
   ]);  
   return $view; 
}

session.pthml

Session data, COUNT = <?= $this->count ?>

Образец результата