Router

Výchozí hodnoty a parametry

Výchozí hodnoty pro nepovinné části routy

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

Výchozí parametry

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

Pro celý router

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