Zend Framework - Gestione delle sessioni

Una sessione è un concetto molto importante in un'applicazione web. Offre la possibilità di mantenere i dati dell'utente nel server web per un periodo di tempo limitato. Il framework Zend fornisce un componente separato,zend-session per gestire le informazioni sulla sessione.

Installa un componente di sessione

Il componente di sessione può essere installato utilizzando il Composer come di seguito specificato -

composer require zendframework/zend-session

Componenti della sessione

Il framework Zend fornisce sei componenti per gestire la gestione delle sessioni. Tutti questi componenti sono stati spiegati di seguito:

  • Zend\Session\Container - L'API principale per leggere e scrivere le informazioni sulla sessione.

  • Zend\Session\SessionManager - Viene utilizzato per gestire l'intero ciclo di vita di una sessione.

  • Zend\Session\Storage - Viene utilizzato per specificare come i dati della sessione verranno archiviati nella memoria.

  • Zend\Session\SaveHandler - Viene utilizzato per archiviare e recuperare i dati della sessione in una posizione fisica come RDBMS, Redis, MangoDB, ecc.

  • Zend\Session\Validator - Viene utilizzato per proteggere la sessione dal dirottamento tramite il controllo incrociato dell'indirizzo remoto e dell'agente utente della richiesta iniziale e successiva.

  • Zend\Session\Config\SessionConfig - Viene utilizzato per configurare il comportamento della sessione.

La configurazione predefinita è sufficiente per lavorare con una sessione. Utilizzando i componenti di cui sopra, tutti gli aspetti di una sessione possono essere gestiti facilmente.

Esempio di componente di sessione

Atteniamoci ai seguenti punti per creare una nuova pagina per comprendere una sessione nel framework Zend. Per impostazione predefinita, è sufficiente creare un'istanza di un fileContainer classe per gestire le sessioni.

  • Crea una nuova azione, sessionAction in TutorialController.

  • Inizializza un file Container oggetto.

$c = new Container();
  • Controlla se una chiave arbitraria countesiste. Se la chiave non è disponibile, inizializza il filecount con valore 1. Se disponibile, incrementare il valore come mostrato nel codice seguente.

if (!isset($c->count)) { 
   $c->count = 0; } else { $c->count++; 
}
  • Registra il conteggio nel ViewModel.

  • Creare un file modello per - sessionAction, session.phtml in myapp / module / Tutorial / view / tutorial / tutorial / session.phtml e quindi eseguire il rendering del count valore.

  • L'aggiornamento della pagina aumenterà il valore di countnella sessione. L'elenco completo è il seguente:

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