RouterFactory
Příklad routovací továrničky pro Nette.
php
<?php
namespace App;
use Nette\Application\Routers\Route;
use Nette\Application\Routers\RouteList;
/**
* Routovací továrnička.
* Řídí routování v celé aplikaci.
* @package App
*/
class RouterFactory
{
/**
* Vytváří router pro aplikaci.
* @return RouteList výsledný router pro aplikaci
*/
public static function createRouter() // Všem URL předchází výchozí adresa projektu (např. localhost/project/)
{
$router = new RouteList(); // ContactPresenter
$router[] = new Route('kontakt/', 'Core:Contact:default'); // 1. kontakt/ -> Core:Contact:default -> action/renderDefault(-)
$router[] = new Route('<action>/', array(
'presenter' => 'Core:Administration', // AdministrationPresenter
'action' => array(
// řetězec v URL => akce presenteru
Route::FILTER_TABLE => array(
'administrace' => 'default', // 2. administrace/ -> Core:Administration:default -> action/renderDefault(-)
'prihlaseni' => 'login', // 3. prihlaseni/ -> Core:Administration:login -> action/renderLogin(-)
'odhlasit' => 'logout', // 4. odhlasit/ -> Core:Administration:logout -> action/renderLogout(-)
'registrace' => 'register' // 5. registrace/ -> Core:Administration:register -> action/renderRegister(-)
),
Route::FILTER_STRICT => true
)
));
$router[] = new Route('reference/<action>/[<url>]', array(
'presenter' => 'Core:Reference', // ReferencePresenter
'action' => array(
Route::FILTER_TABLE => array(
// řetězec v URL => akce presenteru
'reference' => 'list', // 6. reference/reference/<nepovinná URL> -> Core:Reference:list -> action/renderList($url = null)
'editor' => 'editor', // 7. reference/editor/<nepovinná URL> -> Core:Reference:editor -> action/renderEditor($url = null)
'odstranit' => 'remove' // 8. reference/odstranit/<nepovinná URL> -> Core:Reference:remove -> action/renderRemove($url = null)
),
Route::FILTER_STRICT => true
)
));
$router[] = new Route('<action>/[<url>]', array(
'presenter' => 'Core:Article', // ArticlePresenter
'action' => array(
Route::FILTER_TABLE => array(
// řetězec v URL => akce presenteru
'seznam-clanku' => 'list', // 9. seznam-clanku/<nepovinná URL> -> Core:Article:list -> action/renderList($url = null)
'editor' => 'editor', // 10. editor/<nepovinná URL> -> Core:Article:editor -> action/renderEditor($url = null)
'odstranit' => 'remove' // 11. odstranit/<nepovinná URL> -> Core:Article:remove -> action/renderRemove($url = null)
),
Route::FILTER_STRICT => true
)
));
$router[] = new Route('[<url>]', 'Core:Article:default'); // 12. <nepovinná URL> -> Core:Article:default -> action/renderDefault($url = null)
return $router;
}
}
Neformátovaný
Přidáno: 28.3.2016
Expirace: Neuvedeno