EN | CS | Přihlásit | Registrovat

Nette\Applica­tion\SimpleRou­ter

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',
'action' => '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',
'action' => 'display',
), SimpleRouter::ONE_WAY);


// nebo příklad routy pro https schéma
$route = new SimpleRouter(array(
'module' => 'Admin',
'presenter' => 'Dashboard',
'action' => '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é:


Login to submit a comment