Framework Zend - Gestion de session

Une session est un concept très important dans une application Web. Il offre la possibilité de conserver les données de l'utilisateur sur le serveur Web pendant une période limitée. Le framework Zend fournit un composant séparé,zend-session pour gérer les informations de session.

Installer un composant de session

Le composant de session peut être installé à l'aide du Composer comme spécifié ci-dessous -

composer require zendframework/zend-session

Composants de la session

Le framework Zend fournit six composants pour gérer la gestion de session. Tous ces composants ont été expliqués ci-dessous -

  • Zend\Session\Container - L'API principale pour lire et écrire les informations de session.

  • Zend\Session\SessionManager - Il permet de gérer tout le cycle de vie d'une session.

  • Zend\Session\Storage - Ceci est utilisé pour spécifier comment les données de session seront stockées dans la mémoire.

  • Zend\Session\SaveHandler - Il est utilisé pour stocker et récupérer les données de session dans un emplacement physique tel que RDBMS, Redis, MangoDB, etc.

  • Zend\Session\Validator - Ceci est utilisé pour protéger la session contre le piratage en recoupant l'adresse distante et l'agent utilisateur de la demande initiale et ultérieure.

  • Zend\Session\Config\SessionConfig - Il est utilisé pour configurer le comportement de la session.

La configuration par défaut est suffisante pour fonctionner avec une session. En utilisant les composants ci-dessus, tous les aspects d'une session peuvent être traités facilement.

Exemple de composant de session

Adhérons aux points suivants pour créer une nouvelle page pour comprendre une session dans le framework Zend. Par défaut, il suffit de créer une instance d'unContainer classe pour gérer les sessions.

  • Créer une nouvelle action, sessionAction dans TutorialController.

  • Initialiser un Container objet.

$c = new Container();
  • Vérifiez si une clé arbitraire countexiste. Si la clé n'est pas disponible, initialisez lecount avec la valeur 1. Si elle est disponible, incrémentez la valeur comme indiqué dans le code suivant.

if (!isset($c->count)) { 
   $c->count = 0; } else { $c->count++; 
}
  • Enregistrez le décompte dans le ViewModel.

  • Créez un fichier modèle pour - sessionAction, session.phtml dans myapp / module / Tutorial / view / tutorial / tutorial / session.phtml, puis effectuez le rendu count valeur.

  • L'actualisation de la page augmentera la valeur de countdans la session. La liste complète est la suivante -

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