Poslouchaj, Roubíček, vědí, že mě dneska inspirovali?
Pokud máte určité povědomí o MVC, tak víte, že každý požadavek je předán ke zpracování nějakému páru controller & action. V terminologii Nette se říká presenter & view. Nette jde v této filosofii o krůček dál a uvnitř aplikace (tj. v kódu nebo šablonách) se neodkazuje pomocí URL, ale přímo oním párem presenter & view. Tato zdánlivá drobnost má v praxi naprosto zásadní dopad: jakmile to jednou vyzkoušíte, nebudete chápat, že jste kdy mohli psát aplikace jinak.
Stejný princip odkazování zvolil i Microsoft pro svou MVC implementaci pod ASP.NET.
Součástí každé webové aplikace je pak předpis pravidel, jak libovolné
URL převést na presenter & view a obráceně. Jde o jakousi
obdobu pravidel mod_rewrite
, o kterých dokumentace zcela bez
okolků říká:
mod_rewrite is voodoo. Damned cool voodoo, but still voodoo.
Trefné! Routování je prostě magie. Ačkoliv mám s Nette Frameworkem poměrně bohaté zkušenosti, routování je oblast, ve které se toho mám ještě dost co učit. Užitečným pomocníkem mi ode dneška bude Routing Debugger.
Jeho nasazení je velice jednoduché. Stáhněte si Nette Framework, Routing Debugger (je
ve složce Tools) a spusťte ukázkovou aplikaci
examples/CD-collection
. Nyní stačí do souboru
bootstrap.php
za definici routovacích pravidel přidat
následující příkaz:
require 'RoutingDebugger.php';
RoutingDebugger::enable();
Nyní všechny požadavky bude zpracovávat routovací debugger. Ten zobrazí stránku, kde oznámí, na který presenter & pohled aktuální URL vede, jaké se mu předají parametry a také zobrazí tabulku s přehledem všech definovaných cest včetně příznaků, jestli pasují i na aktuální URL:
Všimněte si, že tabulka je vyvedena v krásných barvách, teplých i studených, protože Nette Framework je určen pro teplé i studené vývojáře. V tom je právě jeho síla.