Пример #1
0
 public function testParse()
 {
     $param = new Param('/Articles');
     $request = new RequestAggregate([$param]);
     $this->assertEquals(true, Router::has($request->getParam('url')));
     $this->assertEquals('Articles', Router::parse($request)->data('controller'));
     $this->assertEquals('index', Router::parse($request)->data('action'));
     $this->assertEquals([], Router::parse($request)->data('arguments'));
 }
Пример #2
0
 public function testCreateController()
 {
     $request = new RequestAggregate();
     $request->setRequest(new Param('/Users/index/1'));
     $dispatcher = new Dispatcher($request);
     $controller1 = $dispatcher->getController($request);
     $this->assertInstanceOf('App\\Controller\\UsersController', $controller1);
     $request->setRequest(new Param(''));
     Router::add('/', ['controller' => 'Pages', 'action' => 'index', 'arguments' => [1]]);
     $param = Router::parse($request);
     $request->setRequest($param);
     $controller2 = $dispatcher->getController($request);
     $this->assertInstanceOf('App\\Controller\\PagesController', $controller2);
 }
Пример #3
0
 /**
 * リクエストデータから適切なコントローラを生成し、適切なメソッドを実行する.
 *
 * @param \TRW\Request\RequestAggreagete
 * @return mixid 結果を出力する
 */
 public function dispatch($request)
 {
     if (empty($request->getParam('controller'))) {
         $defaultParam = Router::parse($request);
         $request->setRequest($defaultParam);
     }
     if (Router::has($request->getParam('url'))) {
         $mapedParam = Router::parse($request);
         $request->setRequest($mapedParam);
     }
     $controllerInstance = $this->getController($request);
     $this->invoke($controllerInstance, $request);
     echo $this->render($controllerInstance, $request);
 }