コード例 #1
0
<?php

$router = new Phalcon\Mvc\Router(false);
$router->removeExtraSlashes(true);
$router->setDefaults(array('controller' => 'apireference', 'action' => 'index'));
$router->add('/error/404', array('controller' => 'error', 'action' => '_404'))->setName('404');
$router->notFound($router->getRouteByName('404')->getPaths());
// this only need to get URL to class reference by route name
$router->add('/{language:[A-Za-z]{2,2}}/{version:((\\d+\\.\\d+\\.\\d+)|latest)}/{class:(?i)phalcon(/[\\w/]+)?}', array('controller' => 'apireference', 'action' => 'showClass'))->setName('showClass');
// this only need to get URL by route name
$router->add('/{language:[A-Za-z]{2,2}}/{version:((\\d+\\.\\d+\\.\\d+)|latest)}/{type:(classes|namespaces|interfaces|changelog)}', array('controller' => 'apireference', 'action' => 'index'))->setName('showSummary');
$router->add('/?([A-Za-z]{2,2})?(/((\\d+\\.\\d+\\.\\d+)|latest))?(/(classes|namespaces|interfaces|changelog))?', array('controller' => 'apireference', 'action' => 'index', 'language' => 1, 'version' => 3, 'summary' => 6))->convert('language', function ($param) {
    return $param === 1 || !$param ? null : strtolower($param);
})->convert('version', function ($param) {
    return $param === 3 || !$param ? null : $param;
})->convert('summary', function ($param) {
    return $param === 6 || !$param ? 'classes' : $param;
});
$router->add('(/([A-Za-z]{2,2}))?(/((\\d+\\.\\d+\\.\\d+)|latest))?/((?i)phalcon(/[\\w/]+)?)', array('controller' => 'apireference', 'action' => 'showClass', 'language' => 2, 'version' => 4, 'class' => 6))->convert('language', function ($param) {
    return $param === 2 || !$param ? null : strtolower($param);
})->convert('version', function ($param) {
    return $param === 4 || !$param ? null : $param;
})->convert('class', function ($param) {
    return $param === 6 || !$param ? null : str_replace('/', '\\', strtolower($param));
});
return $router;
コード例 #2
0
ファイル: RouterMvcTest.php プロジェクト: noobiwan/cphalcon
 public function testNamedRoutes()
 {
     Phalcon\Mvc\Router\Route::reset();
     $router = new Phalcon\Mvc\Router(false);
     $usersFind = $router->add('/api/users/find')->setHttpMethods('GET')->setName('usersFind');
     $usersAdd = $router->add('/api/users/add')->setHttpMethods('POST')->setName('usersAdd');
     $this->assertEquals($usersAdd, $router->getRouteByName('usersAdd'));
     //second check when the same route goes from name lookup
     $this->assertEquals($usersAdd, $router->getRouteByName('usersAdd'));
     $this->assertEquals($usersFind, $router->getRouteById(0));
 }