/** * Initializes routing */ public function initRoutes(Config $config) { //setups router $routerAdapter = new Standard($this->getDI()); $router = new Router($this->getDI(), $routerAdapter); //adds routes defined in modules $modules = $this->getApplication()->getModules(); foreach ($modules as $module) { $router->addModuleRoutes($module); } //adds routes defined in default file $defaultRoutesFile = $config->application->configDir . DIRECTORY_SEPARATOR . 'routes.php'; if (file_exists($defaultRoutesFile)) { $routes = (require $defaultRoutesFile); if (is_array($routes)) { $router->addRoutes($routes); } } //setup router rules $router->setup(); //registers router into DI $this->getDI()->set('router', $router->getRouter()); }
public function testShouldAddModuleRoutes() { $routerAdapter = new \Vegas\Mvc\Router\Adapter\Standard(DI::getDefault()); $router = new \Vegas\Mvc\Router(DI::getDefault(), $routerAdapter); $moduleLoader = new ModuleLoader(DI::getDefault()); $modules = $moduleLoader->dump(TESTS_ROOT_DIR . '/fixtures/app/modules/', TESTS_ROOT_DIR . '/fixtures/app/config/'); foreach ($modules as $module) { $router->addModuleRoutes($module); } $router->setup(); $defaultRouter = $router->getRouter(); $defaultRouter->handle('/test/fake/test'); $route = $defaultRouter->getRouteByName('testfake'); $matchedRoute = $defaultRouter->getMatchedRoute(); $this->assertNotEmpty($matchedRoute); $this->assertEquals($route->getPaths()['controller'], $defaultRouter->getControllerName()); $this->assertEquals($route->getPaths()['action'], $defaultRouter->getActionName()); $this->assertEquals($route->getPaths()['module'], $defaultRouter->getModuleName()); $this->assertEquals($route->getName(), $matchedRoute->getName()); $this->assertEquals($route->getPaths()['action'], $matchedRoute->getPaths()['action']); $this->assertEquals($route->getPaths()['controller'], $matchedRoute->getPaths()['controller']); $this->assertEquals($route->getPaths()['module'], $matchedRoute->getPaths()['module']); }