Routovací tipy a triky
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- David Grudl
- Nette Core | 8218
Otevírám vlánko pro užitečné tipy a rady, jak efektivně a úsporně psát routy.
- David Grudl
- Nette Core | 8218
Více rout ve tvaru:
$router[] = new Route('blog/<id>', array(
'presenter' => 'Blog',
'action' => 'default',
));
$router[] = new Route('product/<id>', array(
'presenter' => 'Product',
'action' => 'default',
));
...
se dá zkrátit do jedné jediné:
$router[] = new Route('<presenter blog|product>/<id>', array(
'action' => 'default',
));
Tuto techniku využijete tehdy, pokud název presenteru v URL odpovídá názvu presenteru v aplikaci. Pokud je potřeba specifikovat i modul, lze jej nastavit takto:
// routuje na presentery Front:Blog a Front:Product
$router[] = new Route('<presenter blog|product>/<id>', array(
'module' => 'Front',
'action' => 'default',
));
V případě, že název presenteru v URL a aplikaci si neodpovídají
(například máme presenter Product
a v URL česky
produkt
), je možné zapojit překladový slovník.
Například:
Route::setStyleProperty('presenter', Route::FILTER_TABLE, array(
'produkt' => 'Product',
'kategorie' => 'Category',
'zakaznik' => 'Customer',
'kosik' => 'Basket',
));