Pro každou část routy můžeme určit, jaké znaky smí obsahovat. Povolená hodnota se zapisuje hned za název části a je uzavřená ostrými závorkami (např. :název<hodnota>). Abychom nemuseli psát [a-zA-Z], stačí použít modifikátor Route::CI, který určuje, že tato routa nebude rozlišovat velikost písmen (ve výchozím nastavení je rozlišuje).
// první část URL musí obsahovat text "blog", velikost písmen se nerozlišuje $router->addRoute('/:controller<blog>/:action', array(), Route::CI); // pro ID budeme chtít použít jen číslice: $router->addRoute('/:controller/:action/:id<[0-9]+>'); // totéž jako předchozí, ale místo množiny znaků použijeme sekvenci "\d". $router->addRoute('/:controller/:action/:id<\\d+>'); // nepovinný dvojpísmenný kód jazyka na začátku adresy, s výchozí hodnotou cs (čeština): $router->addRoute('/:?lang<[a-z]{2}>/:controller/:action', array('lang' => 'cs'));
Pokud neuvedeme povolenou hodnotu, použije se výchozí regulár ([A-Za-z0-9_.-]+), tedy alespoň jeden znak z množiny {písmena bez diakritiky, číslice, tečka, pomlčka a podtržítko}.
NB: Router používá Perl-kompatibilní regulární výrazy (PCRE), více informací o syntaxi, metaznacích apod. najdete např. na webu www.regularnivyrazy.info.
Když Router hledá odpovídají routu, podle které rozebere URL požadavku, prochází routy v pořadí, jak byly definované a zastaví se na první vyhovující. Je tedy vhodné je definovat od specifických k obecnějším.
Poslední aktualizace: 24. 6. 2012 15:54