Zend Framework - Gerenciamento de Sessão
Uma Sessão é um conceito muito importante em uma aplicação web. Ele oferece a opção de persistir os dados do usuário no servidor da web por um período limitado de tempo. Zend framework fornece um componente separado,zend-session para lidar com as informações da sessão.
Instale um componente de sessão
O componente da sessão pode ser instalado usando o Composer conforme especificado abaixo -
composer require zendframework/zend-session
Componentes da Sessão
O Zend framework fornece seis componentes para lidar com o gerenciamento de sessões. Todos esses componentes foram explicados abaixo -
Zend\Session\Container - A API principal para ler e escrever as informações da sessão.
Zend\Session\SessionManager - É usado para gerenciar todo o ciclo de vida de uma sessão.
Zend\Session\Storage - Isso é usado para especificar como os dados da sessão serão armazenados na memória.
Zend\Session\SaveHandler - É usado para armazenar e recuperar os dados da sessão em um local físico como RDBMS, Redis, MangoDB, etc.
Zend\Session\Validator - Isso é usado para proteger a sessão de sequestro, verificando o endereço remoto da solicitação inicial e subsequente e o agente do usuário.
Zend\Session\Config\SessionConfig - É usado para configurar como a sessão deve se comportar.
A configuração padrão é suficiente para trabalhar com uma sessão. Usando os componentes acima, todos os aspectos de uma sessão podem ser tratados facilmente.
Exemplo de componente de sessão
Vamos seguir os seguintes pontos para criar uma nova página para entender uma sessão no framework Zend. Por padrão, é suficiente criar uma instância de umContainer classe para gerenciar as sessões.
Crie uma nova ação, sessionAction dentro TutorialController.
Inicialize um Container objeto.
$c = new Container();
Verifique se uma chave arbitrária countexiste. Se a chave não estiver disponível, inicialize ocount com valor 1. Se estiver disponível, incremente o valor conforme mostrado no código a seguir.
if (!isset($c->count)) {
$c->count = 0; } else { $c->count++;
}
Registre a contagem no ViewModel.
Crie um arquivo de modelo para - sessionAction, session.phtml em myapp / module / Tutorial / view / tutorial / tutorial / session.phtml e então renderize o count valor.
Atualizar a página aumentará o valor de countna sessão. A lista completa é a seguinte -
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 ?>
Sample Result
Session data, Count = 5