Phalcon - Zarządzanie sesjami
Sesje to przechowywanie informacji po stronie serwera, które pomaga w interakcji użytkownika ze stroną internetową lub aplikacją internetową. Każda sesja jest jednoznacznie definiowana za pomocą identyfikatora sesji, który jest przekazywany do serwera WWW za każdym razem, gdy przeglądarka wysyła żądanie HTTP. Identyfikator sesji jest każdorazowo parowany z wewnętrzną bazą danych, tak że pobierane są wszystkie przechowywane zmienne.
Sesje w Phalcon
Phalcon używa komponentów sesji, które obejmują opakowania, aby uzyskać dostęp do danych sesji.
Oto funkcje Phalcon -
Dane sesji można odizolować od innych komponentów w tej samej domenie.
W zależności od potrzeb aplikacji wartość sesji można zmienić za pomocą adaptera sesji.
Rozpoczęcie sesji w Phalcon
Wszystkie działania sesji są powiązane z plikami adaptera, które są zadeklarowane w Services.php plik wewnątrz /config folder aplikacji internetowej.
/**
* Start the session the first time some component requests the session service
*/
$di->setShared('session', function () { $session = new SessionAdapter();
$session->start(); return $session;
});
Tworzenie sesji
Step 1 - Utwórz kontroler sesji do tworzenia instancji sesji, tak aby dane mogły być odpowiednio pobierane.
Step 2 - Utwórz sesję z nazwą i wartością.
<?php
class SessionController extends \Phalcon\Mvc\Controller {
public function indexAction() {
//Define a session variable
$this->session->set("user-name", "Omkar"); //Check if the variable is defined if ($this->session->has("user-name")) {
//Retrieve its value
$name = $this->session->get("user-name");
echo($name);
}
}
}
Powyższy kod daje następujące dane wyjściowe.
Usuwanie sesji
Istnieje możliwość zniszczenia sesji lub usunięcia niektórych wartości zmiennych w ramach sesji w Phalcon.
Poniżej znajduje się składnia kasowania wartości zmiennych w sesji.
$this->session->remove(<variable-name>);
Jak pokazano w powyższym przykładzie, nazwa zmiennej utworzonej w sesji to “data-content” które można usunąć za pomocą następującego kodu.
public function removeAction() {
// Remove a session variable with associated session
$this->session->remove("data-content");
}
;
Poniżej znajduje się składnia służąca do niszczenia całej sesji.
$this->session->destroy();