Úkolem routů je podle URL adresy poznat, co uživatel chce, a zavolat mu příslušný kontroler, který jeho dotaz obslouží.

Routy mohou být definované několika způsoby. Požadovanou akci může obsloužit pouze jednoduchá námi definovaná anonymní funkce, a nebo se o danou akci postará kontroler.

Pro pochopení smyslu je níže uveden celý proces po získání požadavku na zobrazení stránky (text je spjat s frameworku Laravel).

Navštívená stránka:  obchod.cz/book/harry-potter
Možný tvar routu: Route::get('/book/{kniha}', [BookController::class, 'show']);

  1. Jako první se požadavek dostane k routování. Zjistí se, o jaký požadavek se jedná (a na jaký kontroler a jeho metodu směřuje) a co vše se má zkontrolovat a stát před předáním dat dále pomocí nastavených pravidel u samotné routy.
  2. Požadavek se profiltruje přes tzv. middleware třídy, které mohou být definované už před samotným routováním, a nebo až v kontroleru. V našem případě se může jednat o ověření toho, že uživatel je přihlášený a má práva na prohlížení knížek. Nebo se jen zkontroluje, zda-li předaný parametr neobsahuje znaky, které tam mít nechceme. Middleware si můžete představit jako takovou ochranku, jež vás zkontroluje před vstupem dovnitř.
  3. Podle adresy už framework ví, že chceme něco s knihami. Proto se zavolá BookController a jeho metoda show() pro zobrazení knížky, jelikož daná adresa splňuje nastavenou routu book/{book}. Kontroleru se předá parametr z URL adresy, tedy nějaký identifikátor knížky.
  4. Nyní se zjistí, jaké všechny parametry metoda akce vyžaduje. Můžeme např. předat speciální třídu pomocí dependency injection, jež nám zvaliduje odeslaná data (formulář). V našem případě to ale bude jen instance modelu.
  5. Následně si kontroler získá instanci modelu Book s daty z databáze pomocí předaného identifikátoru "harry-potter".
  6. BookController předá data z modelu pohledu (šabloně).
  7. Šablona obsahuje HTML stránku pro zobrazení knížky a v ní nějakou Blade syntaxi i pro vypsání dat knížky. Pomocí Blade enginu se vygeneruje výsledná HTML stránka.
  8. BookController dostane zpět ze šablony výsledné HTML a to pošle uživateli jako odpověď.
  9. Uživateli se v prohlížeči zobrazí HTML stránka a vůbec netuší o tom všem, co jsme si tu nyní popsali.

Text převzat z kurzu Laravel. 

Naposledy změněno: pátek, 5. února 2021, 18.45