<?php $router = new Bike\Router(); $router->add('article-with-slug', array('method' => 'GET, POST', 'route' => '/controller-action(/^slug)', 'defaults' => array('controller' => 'index', 'action' => 'index', 'format' => 'html'))); $result = $router->match('GET', '/news-add/some-article-title');
<?php $router = new Bike\Router(); $router->addToken('page', '[0-9]+'); $router->add('url', array('method' => 'GET', 'route' => '(/controller(/action(/page)))', 'defaults' => array('controller' => 'index', 'action' => 'index', 'page' => 1))); $router->add('static-and-dynamic', array('method' => 'GET, POST', 'route' => '/r/$subreddit/comments/$thread_id/$thread_slug/')); $result1 = $router->url(array('controller' => 'news', 'page' => 2), 'url'); // output: '/news/index/2' $result2 = $router->url(array('controller' => 'news', 'page' => 2), 'url', true); // output: '/news/2' $result3 = $router->url(array('subreddit' => 'javascript', 'thread_id' => '10', 'thread_slug' => 'router'), 'static-and-dynamic'); // output: '/r/javascript/comments/10/router'
<?php $router = new Bike\Router(); $router->addToken('non_static_1', '[a-z]+'); $router->addToken('non_static_2', '[a-z]+'); $router->add('user-defined-token', array('method' => 'GET, POST', 'route' => '/non_static_1/undefined/non_static_2')); $result = $router->match('GET', '/some/undefined/tokens');
<?php $router = new Bike\Router(); $router->add('static-and-dynamic', array('method' => 'GET, POST', 'route' => '/r/$subreddit/comments/#thread_id/$thread_slug/')); $result = $router->match('GET', '/r/php/comments/12/router/');
<?php $router = new Bike\Router(); $router->add('controller-action-id', array('method' => 'GET, POST', 'route' => '/controller/action/#id')); $router->add('controller-action', array('method' => 'GET, POST', 'route' => '/controller/action')); $router->add('controller', array('method' => 'GET, POST', 'route' => '/controller'));
<?php $routes = (include 'predefined_routes.php'); $router = new Bike\Router($routes); $result = $router->compile(false);
<?php $router = new Bike\Router(); $router->add('optional-controller-and-action-with-defaults', array('method' => 'GET, POST', 'route' => '/(controller(/action))', 'defaults' => array('controller' => 'index', 'action' => 'index'))); $result1 = $router->match('GET', '/news'); $result2 = $router->match('GET', '/');
<?php $router = new Bike\Router(); $router->add('query-string', array('method' => 'GET, POST', 'route' => '/(controller(/action))', 'defaults' => array('controller' => 'index', 'action' => 'index'))); $result = $router->match('GET', '/news/add?slug=some-slug&id=12');
<?php $router = new Bike\Router(); $router->add('controller-and-action', array('method' => 'GET, POST', 'route' => '/$my_controller/:my_action')); $result = $router->match('GET', '/news/add');
<?php $routes = (include 'predefined_routes.php'); $router = new Bike\Router($routes); $result1 = $router->match('GET', '/news/add.xml/12/some-slug'); $result2 = $router->match('GET', '/news/add/12'); $result3 = $router->match('GET', '/news/add');
<?php $router = new Bike\Router(); $router->add('controller-only', array('method' => 'GET, POST', 'route' => '/controller')); $result = $router->match('GET', '/news');
<?php $router = new Bike\Router(); $router->addToken('page', '[0-9]+'); $router->add('user-defined-token', array('method' => 'GET, POST', 'route' => '(/controller(/action(/page)))')); $result = $router->match('GET', '/news/view/12');
<?php $router = new Bike\Router(); $router->add('in-place-regex', array('method' => 'GET, POST', 'route' => '(/controller<[A-Z]{2}>(/action))')); $result1 = $router->match('GET', '/news/add'); $result2 = $router->match('GET', '/AB/add');
<?php $router = new Bike\Router(); $router->add('optional-controller-and-action', array('method' => 'GET, POST', 'route' => '/(controller(/action))')); $result1 = $router->match('GET', '/news/add'); $result2 = $router->match('GET', '/news');