Zend Framework - zarządzanie sesjami

Sesja to bardzo ważna koncepcja w aplikacji internetowej. Zapewnia możliwość przechowywania danych użytkownika na serwerze sieciowym przez ograniczony czas. Framework Zend dostarcza oddzielny komponent,zend-session do obsługi informacji o sesji.

Zainstaluj składnik sesji

Komponent sesji można zainstalować przy użyciu Composer jak określono poniżej -

composer require zendframework/zend-session

Składniki sesji

Framework Zend dostarcza sześć komponentów do zarządzania sesjami. Wszystkie te elementy zostały wyjaśnione poniżej -

  • Zend\Session\Container - Główny interfejs API do odczytu i zapisu informacji o sesji.

  • Zend\Session\SessionManager - Służy do zarządzania całym cyklem życia sesji.

  • Zend\Session\Storage - Służy do określenia sposobu przechowywania danych sesji w pamięci.

  • Zend\Session\SaveHandler - Służy do przechowywania i pobierania danych sesji do fizycznej lokalizacji, takiej jak RDBMS, Redis, MangoDB itp.

  • Zend\Session\Validator - Służy do ochrony sesji przed przejęciem kontroli poprzez krzyżowe sprawdzanie początkowego i kolejnego zdalnego adresu żądania oraz agenta użytkownika.

  • Zend\Session\Config\SessionConfig - Służy do konfigurowania zachowania sesji.

Konfiguracja domyślna wystarczy do pracy z sesją. Używając powyższych komponentów, wszystkie aspekty sesji mogą być łatwo obsłużone.

Przykład komponentu sesji

Postępujmy zgodnie z poniższymi punktami, aby utworzyć nową stronę i zrozumieć sesję we frameworku Zend. Domyślnie wystarczy utworzyć instancję plikuContainer klasa do zarządzania sesjami.

  • Utwórz nową akcję, sessionAction w TutorialController.

  • Zainicjuj plik Container obiekt.

$c = new Container();
  • Sprawdź, czy jest to dowolny klucz countistnieje. Jeśli klucz nie jest dostępny, zainicjuj plikcount z wartością 1. Jeśli jest dostępna, zwiększ wartość, jak pokazano w poniższym kodzie.

if (!isset($c->count)) { 
   $c->count = 0; } else { $c->count++; 
}
  • Zarejestruj liczbę w ViewModel.

  • Utwórz plik szablonu dla - sessionAction, session.phtml w myapp / module / Tutorial / view / tutorial / tutorial / session.phtml, a następnie wyrenderuj count wartość.

  • Odświeżenie strony spowoduje wzrost wartości countw sesji. Pełna lista jest następująca -

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