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