Nepovinným částem routy můžeme nastavit výchozí hodnoty. Při generování URL je nemusíme zadávat.
$router->addRoute('/:controller/:?action', array('action' => 'nove')); $params1 = $router->parseUrl('/clanky'); $params2 = $router->parseUrl('/clanky/regiony');Výsledek:
URL: /clanky controller = clanky action = nove URL: /clanky/regiony controller = clanky action = regiony
Ke každé routě můžeme nastavit výchozí parametry. Typický příklad je např. společný kontroler pro všechny požadavky, kdy se z URL čte jen název metody ("action").
$router->addRoute('/:action', array('controller' => 'default')); $params1 = $router->parseUrl('/novinky'); $params2 = $router->parseUrl('/kontakty');Výsledek:
URL: /novinky controller = default action = novinky URL: /kontakty controller = default action = kontakty
Při generování URL musíme tyto parametry zadat přesně tak, jak byly definované u routy (i když se v URL neobjeví):
echo $router->url(array( 'controller' => 'default', 'action' => 'uvod', ));Výsledek:
/uvod
Konstruktor může dostat jako jediný parametr asociativní pole s výchozími hodnotami. Ty se použijí, pokud metoda parseUrl() dostane kořenovou URL (/), anebo zadaná URL neodpovídá žádné routě. V tom druhém případě navíc router vyvolá varování, tedy chybu úrovně E_USER_WARNING. Na rozdíl od předchozí verze 1.2.1, která si z výchozích hodnot mohla doplnit kteroukoli jednu chybějící hodnotu, verze 1.3 bere buď vše nebo nic.
Poslední aktualizace: 24. 6. 2012 15:54