private function setUpDispatcher() { $this->dispatcher->setControllerName($this->router->getControllerName()); $this->dispatcher->setActionName($this->router->getActionName()); $this->dispatcher->setParams($this->router->getParams()); $oDispatcherEventManager = new Manager(); $oDispatcherEventManager->attach('dispatch:beforeDispatch', function (Event $oEvent, Dispatcher $oDispatcher, $data) { return false; }); $this->dispatcher->setEventsManager($oDispatcherEventManager); }
/** * @dataProvider easyMatchedProvider */ public function testEasyMatched($strUri, $strController, $strAction, $strRouteName, $arParameters = array()) { $this->router->handle($strUri); $boolMatched = $this->router->wasMatched(); $this->assertTrue($boolMatched, 'route ' . $strUri . ' does not match any of ' . print_r($this->routes, true) . ' when it should'); $this->assertEquals($strRouteName, $this->router->getMatchedRoute()->getName(), 'matches wrong route'); $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'); } }
/** * @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'); } }
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 testAnnotations() { $di = new Di(); $di['request'] = new \Phalcon\Http\Request(); $router = new Router(false); $router->setDI($di); $loader = new ArrayRouteLoader($router); $loader->load(include __DIR__ . '/Fixtures/routes.php'); $router->handle(); $this->assertCount(3, $router->getRoutes()); $routes = [['uri' => '/test4', 'method' => 'GET', 'controller' => 'test4', 'action' => 'test4'], ['uri' => '/test4', 'method' => 'POST', 'controller' => 'test4', 'action' => 'test4'], ['uri' => '/test5', 'method' => 'POST', 'controller' => 'test5', 'action' => 'test5'], ['uri' => '/test6', 'method' => 'GET', 'controller' => 'test6', 'action' => 'test6']]; foreach ($routes as $route) { $_SERVER['REQUEST_METHOD'] = $route['method']; $router->handle($route['uri']); $this->assertEquals($router->getControllerName(), $route['controller']); $this->assertEquals($router->getActionName(), $route['action']); $this->assertEquals($router->isExactControllerName(), true); } }
<?php /** * Created by PhpStorm. * User: rcmonitor * Date: 07.07.15 * Time: 15:46 */ use Phalcon\Di; use Phalcon\Events\Manager; use Phalcon\Mvc\Dispatcher; use Phalcon\Mvc\Router; use Phalcon\Version; $di = new Di\FactoryDefault(); $oRouter = new Router(false); $oRouter->setDI($di); $oRouter->add('/:controller', array('controller' => 1, 'action' => 'index')); $oEventManager = new Manager(); $oEventManager->attach('dispatch:beforeDispatch', function () { return false; }); $oDispatcher = new Dispatcher(); $oDispatcher->setDI($di); $oDispatcher->setEventsManager($oEventManager); $oRouter->handle('/test'); $oDispatcher->setControllerName($oRouter->getControllerName()); $oDispatcher->setActionName($oRouter->getActionName()); $oDispatcher->dispatch(); echo $oDispatcher->getControllerClass() . PHP_EOL; echo Version::get() . PHP_EOL;
use Phalcon\Mvc\Router; use Phalcon\Mvc\Url as UrlResolver; use Phalcon\DI\FactoryDefault; use Phalcon\Session\Adapter\Files as SessionAdapter; /** * The FactoryDefault Dependency Injector automatically register the right services providing a full stack framework */ $di = new FactoryDefault(); /** * Registering a router */ $di['router'] = function () use($di) { $router = new Router(); $router->handle(); $gateWay = new \Apiserver\Utils\GateWay($di); if (!$gateWay->check($router->getControllerName(), $router->getActionName())) { echo json_encode($gateWay->errMsg()); exit; } $router->setDefaultModule('api_' . $gateWay->ver); return $router; }; /** * The URL component is used to generate all kind of urls in the application */ $di['url'] = function () { $url = new UrlResolver(); $url->setBaseUri('/'); return $url; }; $di['view'] = function () {
public function getActionName() { return parent::getActionName(); }