Tunnels

Tunnels

Een tunnel is een reis die in stappen is verdeeld — een aanmelding, een checkout, een verlenging — waarvan de route kan veranderen afhankelijk van de antwoorden van de bezoeker. Het pakket onthoudt waar elke bezoeker staat, laat ze de stappen zien die ze kunnen zien, en stuurt ze terug naar waar ze thuishoren wanneer ze proberen vooruit te springen.

Een boom van cursors

Een tunnel is opgebouwd als een boom, niet als een lijst. Een stap die vanaf twee plaatsen wordt bereikt, is twee cursors, elk met zijn eigen hash en zijn eigen opgeslagen waarden: dat is wat een tak laat groeien stappen die een andere niet heeft, en wat de route die je hebt genomen, aan het einde van elke tunnel wordt weergegeven.

Een sessie in de database

Het openen van een tunnel creëert een sessie, die de browsersessie alleen kent aan de hand van zijn id. Het bevat de waarden die de stappen opslaan en verloopt een dag na de laatste getoonde stap — of eerder, wanneer die stap daarom vraagt. Verlopen sessies worden door de planner verwijderd, elke 15 minuten; voltooide en wachtende sessies worden bewaard.

Waar de bezoeker naartoe kan gaan

Elke stap beslist of deze kan worden getoond en waar de bezoeker anders naartoe moet worden gestuurd. Links en knoppen worden getekend met dezelfde regels, zodat een link nooit leidt tot een omleiding terug: geen volgende knop waar de weg splitst, geen weg terug langs een betaling, niets om naar terug te keren in een afgesloten sessie.

Waar je naar moet kijken terwijl je loopt

De stepper Waar je staat, wat er achter je is, wat er voor je ligt. Een gat markeert waar de weg afhangt van een keuze die nog niet is gemaakt.
Achter deze stap Onder elke stap, wat de motor net heeft gedaan, en zijn status: de cursor, hoe de stap wordt voltooid, de sessie en wanneer deze verloopt.
De ontwikkelwerkbalk en de shell Het Tunnels-tabblad van de ontwikkelwerkbalk tekent de sessie van deze browser op de kaart van zijn tunnel; bin/console tunnels:info doet hetzelfde vanuit een shell.