Nette\Application\SimpleRouter
Jednoduchá dvousměrná routa pro triviální routování přes základní tvar query stringu.
SimpleRouter je jednoduchou implementací rozhraní IRouter. Má
stejné možnosti jako Route, tj. generovat
i přijímat URL adresy, nastavit jim příznak pro zabezpečené schéma
(https) a jednosměrky (požadavky jsou jen přijímány). Co však
s Route nemá společné, je možnost vytvářet „cool URL“, protože
SimpleRouter nemá jako jeden z parametrů masku tvaru vstupní/výstupní URL.
Ty pak mají tvar klasického query stringu.
SimpleRouter stejně jako Route na začátku svého životního cyklu naparsuje vstupní požadavek (tedy query string) a vytvoří z něj objekt PresenterRequest a stejně jako Route také generuje URL adresy z tohoto objektu PresenterRequest, pokud je dvousměrný.
Pokud není aplikaci určena žádná uživatelská definice
routy, jako výchozí se použije právě SimpleRouter, který předá
požadavek ke zpracování presenteru Default a pohledu
default.
Příklad deklarace SimpleRoutu a jeho předání aplikaci:
// získáme objekt MultiRouter, který slouží jako úložiště pro routy
$router = Environment::getApplication()->getRouter();
// přidání dvousměrné routy do aplikace
$router[] = new SimpleRouter(array(
'module' => 'Front',
'presenter' => 'Article',
'view' => 'show',
'id' => NULL,
));
// přidání jednoduché jednosměrné routy do aplikace
// je vhodné použít s nějakou další routou pro stejný
// modul a presenter, pokud z něj chceme i generovat odkazy
$router[] = new SimpleRouter(array(
'module' => 'Front',
'presenter' => 'Rss',
'view' => 'display',
), SimpleRouter::ONE_WAY);
// nebo příklad routy pro https schéma
$route = new SimpleRouter(array(
'module' => 'Admin',
'presenter' => 'Dashboard',
'view' => 'default',
'id' => NULL,
), SimpleRouter::SECURED);
Pěkná ukázka použití SimpleRouteru ve spolupráci s objektem
PresenterRequest je v adresáři tests v distribuci.
Viz také:
- SimpleRouter API reference
- IRouter API reference
- Routování
- Route
- MultiRouter
- PresenterRequest
- Fórum: Příklady routeru
- Fórum: Routovací tipy a triky
