Tüneller

Tüneller

Bir tünel, adımlar halinde kesilmiş bir yolculuktur — bir kayıt, bir ödeme, bir yenileme — ziyaretçinin verdiği yanıtlara göre değişen bir yol. Paket, her ziyaretçinin nerede durduğunu hatırlar, görebilecekleri adımlardan geçirir ve öne atlamaya çalıştıklarında onları ait oldukları yere geri gönderir.

Kursörler ağacı

Bir tünel, bir liste olarak değil, bir ağaç olarak inşa edilir. İki yerden ulaşılan bir adım, kendi hash'ine ve kendi saklanan değerlerine sahip iki kursördür: bu, bir dalın başka birinde olmayan adımları büyütmesini sağlar ve geldiğiniz yol, her tünelin sonunda okunan yerdir.

Veritabanında bir oturum

Bir tünel açmak, tarayıcı oturumu tarafından yalnızca kimliğiyle bilinen bir oturum yaratır. Adımların depoladığı değerleri tutar ve gösterilen son adımın üzerinden bir gün sonra sona erer — veya o adım bunu isterse daha önce. Süresi dolmuş oturumlar, her 15 dakikada bir zamanlayıcı tarafından silinir; tamamlanmış ve beklemede olanlar saklanır.

Ziyaretçinin gidebileceği yerler

Her adım, gösterilip gösterilemeyeceğine ve aksi takdirde ziyaretçiyi nereye göndereceğine karar verir. Bağlantılar ve butonlar aynı kurallarla çizilir, bu yüzden bir bağlantı asla geri yönlendirme yapmaz: yolun ayrıldığı yerde bir sonraki buton yok, bir ödemenin ötesine geri dönme yok, kapalı bir oturumda geri dönülecek hiçbir şey yok.

Yürürken neye bakmalı

Adım göstergesi Nerede durduğunuz, arkanızda ne var, önünüzde ne var. Bir boşluk, yolun henüz yapılmamış bir seçime bağlı olduğunu belirtir.
Bu adımın arkasında Her adımın altında, motorun az önce yaptığı şey ve durumu: kursör, adımın nasıl tamamlandığı, oturum ve ne zaman sona ereceği.
Geliştirme araç çubuğu ve kabuk Geliştirme araç çubuğunun Tüneller sekmesi, bu tarayıcının oturumunu tünel haritasında çizer; bin/console tunnels:info, kabuktan aynı şeyi yapar.