Router

Doplňující informace

Dvojí přístup k proměnným, ArrayAccess, fluent interface

Členské proměnné baseUrl, currentUrl a params jsou přístupné jak pomocí metod $router->getBaseUrl(), $router->getCurrentUrl(), $router->getParams(), tak i přímo (ale jen pro čtení). Hodí se to v případě, že je chceme použít např. v kontextu řetězce:

echo <<<EOT
    <link href="{$router->baseUrl}/styl.css" rel="stylesheet" type="text/css">
    ... hodnota parametru controller je: {$router->params['controller']}
EOT;

Tyto dva zápisy jsou rovněž totožné, $router->addRoute a konstruktor třídy Route očekávají zcela stejné parametry, ve stejném pořadí.

$router->addRoute('/:page');

$router[] = new Route('/:page');

Všechny veřejné metody, které nemají vracet nějakou hodnotu, lze řetězit za sebe:

$router = new Router;

$router
    ->setIgnoredUrlPart('/adresar')
    ->setOutputUrlPrefix($router->getBaseUrl())
    
    ->addRoute('/:admin<admin>/:controller/:action/:?id')
    ->addRoute('/:controller/:action/:?id')
    ->prepareUrlTemplate('pdetail', array(
        'controller'  => 'produkt',
        'action'      => 'detail',
        'id'          => Router::PREPARE,
    ))
    
    ->setCallbackMask('<controller>Controller:<action>')
    ->setErrorCallback('ErrorController:index');

$router->parseUrl($_GET['route']);
$router->delegate();

Poslední aktualizace: 24. 6. 2012 15:54