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
+
0
-

Otevírám vlánko pro užitečné tipy a rady, jak efektivně a úsporně psát routy.

David Grudl
Nette Core | 8218
+
0
-

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',
));