Klasa \core\SessionUtils ułatwia zapisywanie i wczytywanie zmiennych, struktur jak i obiektów do/z tablicy sesji ($_SESSION). W Amelii domyślny mechanizm sesji PHP jest zawsze włączony.
Metody klasy \core\SessionUtils
SessionUtils::store($name, $value)
zapisz parametr ($name) i jego wartość ($value) w sesji. Metoda bezpośrednio wstawia wartość do tabeli $_SESSION na pozycję wskazaną nazwą.
SessionUtils::load($name, $keep = false)
operacja odwrotna do metody store(): metoda pobiera wskazany nazwą parametr. Domyślnie, gdy nie podamy wartości $keep, po pobraniu z sesji parametr o podanej nazwie zostanie z niej usunięty. Gdy chcemy go w sesji pozostawić, to należy podać $keep = true.
Metoda bezpiecznie sprawdza istnienie parametru w sesji funkcją isset() i zwraca null gdy parametr nie istnieje.
SessionUtils::storeMessages()
metoda zapisująca w sesji obiekt messages. Należy ją wywołać w momencie gdy chcemy przekazać wygenerowane komunikaty do następnej akcji po przekierowaniu przeglądarki (wykonaniu redirect). Aby mechanizm zadziałał, należy we front controlerze (ctrl.php) wywołać metodę SessionUtils::loadMessages(), opisaną poniżej.
SessionUtils::loadMessages($keep = false)
metoda wczytująca obiekt messages z sesji, jeśli został w niej zapisany. W innym wypadku metoda nie wykona żadnego działania. Domyślnie obiekt jest z sesji usuwany po odczycie, na co mamy wpływ za pomocą parametru $keep.
SessionUtils::storeObject($name, &$object)
metoda pozwalająca zapisać w sesji obiekt PHP lub strukturę (jak tabela) pod podaną nazwą. Działa podobnie jak store(), jednak przed zapisem wykonuje serializację obiektu/struktury - serialize($object) - co pozwala na jego/jej zapis w sesji.
SessionUtils::loadObject($name, $keep = false)
analogicznie do storeObject(), metoda zwraca wczytany z sesji obiekt lub strukturę (jak tabela). Po wczytaniu, automatycznie wywoływana jest metoda unserialize() i zwracany jest obiekt/struktura PHP.
Metoda bezpiecznie sprawdza istnienie parametru w sesji funkcją isset() i zwraca null gdy parametr nie istnieje.
SessionUtils::storeData($name, &$data)
metoda pozwala zapisać obiekt/strukturę w sesji używając kodowania do JSON (funkcja json_encode). Podobnie jak storeObject pozwala zapisać w sesji złożone struktury.
SessionUtils::loadData($name, $keep = false)
analogicznie do storeData(), metoda zwraca wczytany z sesji obiekt lub strukturę używając dekodowania JSON. Po wczytaniu, automatycznie wywoływana jest metoda json_decode() i zwracany jest wynik.
Metoda bezpiecznie sprawdza istnienie parametru w sesji funkcją isset() i zwraca null gdy parametr nie istnieje.
SessionUtils::remove($name)
Metoda usuwa z sesji parametr o podanej nazwie.