/** * @covers initialize * * * @dataProvider easyMatchRoutesDataProvider */ public function testMatchEasyRoutes($strUri, $strModule, $strController, $strAction, $strRouteName, $arParameters) { $this->router->handle($strUri); $boolMatched = $this->router->wasMatched(); $this->assertTrue($boolMatched, 'route does not match when it should'); $this->assertEquals($strRouteName, $this->router->getMatchedRoute()->getName(), 'matched wrong route: ' . $this->router->getMatchedRoute()->getPattern()); $this->assertEquals($strModule, $this->router->getModuleName(), 'wrong module name'); $this->assertEquals($strController, $this->router->getControllerName(), 'wrong controller name'); $this->assertEquals($strAction, $this->router->getActionName(), 'wrong action name'); $arActualParameters = $this->router->getParams(); foreach ($arParameters as $key => $value) { $this->assertArrayHasKey($key, $arParameters, 'key "' . $key . '" not found'); $this->assertEquals($arParameters[$key], $arActualParameters[$key], 'parameter "' . $key . '" mismatch'); } }
/** * registers module according to uri given * * @return bool true if module successfully loaded; <br /> * false otherwise; */ public function handle() { $boolReturn = false; $oLogger = $this->di->getFileLogger(); $oPreRouter = new Router(); $oPreRouter->add('/api(.*)', array('module' => 'api')); $oPreRouter->add('/regular(.*)', array('module' => 'regular')); $oPreRouter->add('/blind(.*)', array('module' => 'blind')); $oPreRouter->handle(); $strModuleName = $oPreRouter->getModuleName(); /** * @type Request $oRequest */ $oRequest = $this->di->getRequest(); if (array_key_exists($strModuleName, $this->knownModules)) { $this->app->registerModules(array($strModuleName => $this->knownModules[$strModuleName])); $this->app->setDefaultModule($strModuleName); $boolReturn = true; $oLogger->debug(__CLASS__ . ': ' . $oRequest->getURI() . ' leads to module: ' . $strModuleName); } else { if (!U::isLegacy()) { $strMsg = 'failed to load phalcon module'; } else { $strMsg = 'loading old backend'; } $oLogger->debug(__CLASS__ . ': ' . $strMsg . ' for "' . $oRequest->getUri() . '"'); } return $boolReturn; }
public function routing(Router $router) { $this->setModuleName($router->getModuleName()); $this->setNamespaceName($router->getNamespaceName()); $this->setControllerName($router->getControllerName()); $this->setActionName($router->getActionName()); $this->setParams($router->getParams()); }
public function getModuleName() { return parent::getModuleName(); }