Jednodušší Nette\Application\Route
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- David Grudl
- Nette Core | 8218
Novinky jsou tři:
- zjednodušení, kdy pole s dvojicí
presenter
aaction
můžete nahradit za řetězecPresenter:action
- možnost uvádět výchozí hodnoty přímo v masce
pomocí
<param=value>
- v konstruktoru MultiRouteru lze specifikovat omezení pro konkrétní modul (experimentální)
A příklady použití:
// dříve ee
$router[] = new Route('index.php', array(
'presenter' => 'Homepage',
'action' => 'default',
), Route::ONE_WAY);
// nyní jééé
$router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
// dříve eee
$router[] = new Route('<presenter>/<action>/<id>', array(
'presenter' => 'Homepage',
'action' => 'default',
'id' => NULL,
));
// nyní jééé!
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:');
// dříve
$router[] = new Route('edit/<name>', array(
'presenter' => 'Admin:Page',
'action' => 'edit',
'name' => 'homepage',
));
// nyní
$router[] = new Route('edit/<name=homepage>', 'Admin:Page:edit');
S pevným modulem
Dříve eee:
$router[] = new Route('index.php', array(
'presenter' => 'Front:Default',
), Route::ONE_WAY);
$router[] = new Route('admin/<presenter>/<action>', array(
'module' => 'Admin',
'presenter' => 'Dashboard',
'action' => 'default',
));
$router[] = new Route('<presenter>/<action>', array(
'module' => 'Front',
'presenter' => 'Homepage',
'action' => 'default',
));
nyní jéééé:
$admin = $router[] = new MultiRouter('Admin');
$admin[] = new Route('admin/<presenter>/<action>', 'Dashboard:default');
$front = $router[] = new MultiRouter('Front');
$front[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$front[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');