Router

Odkazy

$router = new Router;

// pomocí addRoute nadefinujeme používané routy
$router->addRoute('/:controller/:action/:?id');
$router->addRoute('/:controller/:?action', array('action' => 'default'));

// určíme, jak se vytvoří jméno kontroleru a metody
$router->setCallbackMask('<controller>Controller:<action>');

// nastavíme kontroler pro případné chybové stavy
$router->setErrorCallback('ErrorController:index');

// předáme routeru aktuální URL, vrátí nám ji rozebranou na jednotlivé části
$params = $router->parseUrl($_GET['route']);

// a pak předáme řízení. Router sám určí kontroler i metodu.
$router->delegate();

Update: Nová verze routeru je připravená, brzy se zde objeví.

Hlavní změny, které přinese:
- všechny URL vytvářené routerem budou URL-enkódované
- do URL šablon bude možné dosazovat libovolný počet různých hodnot
- v případě chyby nebude router vyvolávat E_USER_WARNING, ale házet výjimky
- u přesměrovávaných cest bude možné zadat cílovou adresu i jako řetězec

 

Příklady použití

Základy

Další možnosti

.htaccess

Všechny požadavky se přesměrovávají na index.php jako URL parametr route (např. index.php?route=/clanek/detail/1234). Pokud chcete používat jiný název parametru, nastavíte ho metodou setRouteKey().

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=/$1 [L,QSA]

© 2012, Tori <admin@vize.name>