Tunel

Tunel

Tunel to podróż podzielona na etapy — rejestracja, zakupy, odnowienie — której droga może się zmieniać w zależności od odpowiedzi odwiedzającego. Pakiet pamięta, na którym etapie znajduje się każdy odwiedzający, pozwala im przechodzić przez widoczne etapy i odsyła ich tam, gdzie powinni być, gdy próbują przejść do przodu.

Drzewo kursorów

Tunel jest zbudowany jak drzewo, a nie lista. Krok osiągnięty z dwóch miejsc to dwa kursory, każdy z własnym hashem i przechowywanymi wartościami: to pozwala gałęzi rozwijać kroki, których inna nie ma, a droga, którą przyszedłeś, pokazana na końcu każdego tunelu, jest odczytywana z tego.

Sesja w bazie danych

Otwarcie tunelu tworzy sesję, którą sesja przeglądarki zna tylko po jej identyfikatorze. Przechowuje wartości, które zapisują kroki, i wygasa dzień po ostatnim pokazanym kroku — lub wcześniej, gdy ten krok o to prosi. Wygasłe sesje są usuwane przez harmonogram, co 15 minut; ukończone i oczekujące są zachowywane.

Gdzie może pójść odwiedzający

Każdy krok decyduje, czy może być pokazany i dokąd inaczej wysłać odwiedzającego. Linki i przyciski są rysowane według tych samych zasad, więc link nigdy nie prowadzi do przekierowania z powrotem: brak przycisku „następny”, gdzie droga się rozdziela, brak powrotu po płatności, nic do czego można wrócić w zamkniętej sesji.

Na co patrzeć podczas spaceru

Krokomierz Gdzie stoisz, co jest za tobą, co jest przed tobą. Luka oznacza miejsce, w którym droga zależy od wyboru, który jeszcze nie został dokonany.
Za tym krokiem Pod każdym krokiem, co silnik właśnie zrobił i jego stan: kursor, jak krok się kończy, sesja i kiedy wygasa.
Pasek narzędzi dewelopera i powłoka Zakładka Tunnels w pasku narzędzi dewelopera rysuje sesję tej przeglądarki na mapie jej tunelu; bin/console tunnels:info robi to samo z poziomu powłoki.