public function testGroups() { Phalcon\Mvc\Router\Route::reset(); $router = new Phalcon\Mvc\Router(false); $blog = new Phalcon\Mvc\Router\Group(array('module' => 'blog', 'controller' => 'index')); $blog->setPrefix('/blog'); $blog->add('/save', array('action' => 'save')); $blog->add('/edit/{id}', array('action' => 'edit')); $blog->add('/about', array('controller' => 'about', 'action' => 'index')); $router->mount($blog); $routes = array('/blog/save' => array('module' => 'blog', 'controller' => 'index', 'action' => 'save'), '/blog/edit/1' => array('module' => 'blog', 'controller' => 'index', 'action' => 'edit'), '/blog/about' => array('module' => 'blog', 'controller' => 'about', 'action' => 'index')); foreach ($routes as $route => $paths) { $router->handle($route); $this->assertTrue($router->wasMatched()); $this->assertEquals($paths['module'], $router->getModuleName()); $this->assertEquals($paths['controller'], $router->getControllerName()); $this->assertEquals($paths['action'], $router->getActionName()); $this->assertEquals($blog, $router->getMatchedRoute()->getGroup()); } }
public function testGroups() { $this->specify("Router Groups don't work properly", function () { \Phalcon\Mvc\Router\Route::reset(); $router = new \Phalcon\Mvc\Router(false); $blog = new \Phalcon\Mvc\Router\Group(["module" => "blog", "controller" => "index"]); $blog->setPrefix("/blog"); $blog->add("/save", ["action" => "save"]); $blog->add("/edit/{id}", ["action" => "edit"]); $blog->add("/about", ["controller" => "about", "action" => "index"]); $router->mount($blog); $routes = ["/blog/save" => ["module" => "blog", "controller" => "index", "action" => "save"], "/blog/edit/1" => ["module" => "blog", "controller" => "index", "action" => "edit"], "/blog/about" => ["module" => "blog", "controller" => "about", "action" => "index"]]; foreach ($routes as $route => $paths) { $router->handle($route); expect($router->wasMatched())->true(); expect($paths["module"])->equals($router->getModuleName()); expect($paths["controller"])->equals($router->getControllerName()); expect($paths["action"])->equals($router->getActionName()); expect($blog)->equals($router->getMatchedRoute()->getGroup()); } }); }
public function testNotFoundPaths() { Phalcon\Mvc\Router\Route::reset(); $router = new Phalcon\Mvc\Router(false); $router->add('/static/route'); $router->notFound(array('module' => 'module', 'namespace' => 'namespace', 'controller' => 'controller', 'action' => 'action')); $router->handle(); $this->assertEquals($router->getControllerName(), 'controller'); $this->assertEquals($router->getActionName(), 'action'); $this->assertEquals($router->getModuleName(), 'module'); $this->assertEquals($router->getNamespaceName(), 'namespace'); }
<?php // Creating a router $router = new \Phalcon\Mvc\Router(); // Define routes here if any // ... // Taking URI from $_GET["_url"] $router->handle(); // or Setting the URI value directly $router->handle("/employees/edit/17"); // Getting the processed controller echo $router->getControllerName(); // Getting the processed action echo $router->getActionName(); //Get the matched route $route = $router->getMatchedRoute();
<?php //These routes simulate real URIs $testRoutes = array('/', '/index', '/index/index', '/index/test', '/products', '/products/index/', '/products/show/101'); $router = new Phalcon\Mvc\Router(); //Add here your custom routes //... //Testing each route foreach ($testRoutes as $testRoute) { //Handle the route $router->handle($testRoute); echo 'Testing ', $testRoute, '<br>'; //Check if some route was matched if ($router->wasMatched()) { echo 'Controller: ', $router->getControllerName(), '<br>'; echo 'Action: ', $router->getActionName(), '<br>'; } else { echo 'The route wasn\'t matched by any route<br>'; } echo '<br>'; }