Zend Framework - Gestión de sesiones
Una sesión es un concepto muy importante en una aplicación web. Proporciona la opción de conservar los datos del usuario en el servidor web durante un período de tiempo limitado. Zend framework proporciona un componente separado,zend-session para manejar la información de la sesión.
Instalar un componente de sesión
El componente de sesión se puede instalar usando el Composer como se especifica a continuación -
composer require zendframework/zend-session
Componentes de la sesión
Zend framework proporciona seis componentes para manejar la gestión de sesiones. Todos estos componentes se han explicado a continuación:
Zend\Session\Container - La API principal para leer y escribir la información de la sesión.
Zend\Session\SessionManager - Se utiliza para gestionar todo el ciclo de vida de una sesión.
Zend\Session\Storage - Se utiliza para especificar cómo se almacenarán los datos de la sesión en la memoria.
Zend\Session\SaveHandler - Se utiliza para almacenar y recuperar los datos de la sesión en una ubicación física como RDBMS, Redis, MangoDB, etc.
Zend\Session\Validator - Esto se utiliza para proteger la sesión contra el secuestro mediante la verificación cruzada de la dirección remota y el agente de usuario de la solicitud inicial y posterior.
Zend\Session\Config\SessionConfig - Se utiliza para configurar cómo debe comportarse la sesión.
La configuración predeterminada es suficiente para trabajar con una sesión. Con los componentes anteriores, todos los aspectos de una sesión se pueden manejar fácilmente.
Ejemplo de componente de sesión
Adhiéramos a los siguientes puntos para crear una nueva página para entender una sesión en el marco Zend. De forma predeterminada, es suficiente crear una instancia de unContainer clase para gestionar sesiones.
Crea una nueva acción, sessionAction en TutorialController.
Inicializar un Container objeto.
$c = new Container();
Compruebe si una clave arbitraria countexiste. Si la clave no está disponible, inicialice lacount con valor 1. Si está disponible, incremente el valor como se muestra en el siguiente código.
if (!isset($c->count)) {
$c->count = 0;
} else {
$c->count++;
}
Registre el recuento en ViewModel.
Cree un archivo de plantilla para - sessionAction, session.phtml en myapp / module / Tutorial / view / tutorial / tutorial / session.phtml y luego renderice el count valor.
Actualizar la página aumentará el valor de counten la sesión. La lista completa es la siguiente:
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