コード例 #1
0
ファイル: ConfigRouter.php プロジェクト: ranyuen/little
 private function map(array $config)
 {
     foreach ($config as $val) {
         list($path, $controller) = $val;
         $route = $this->router->map($path, $controller);
         if (isset($val['via'])) {
             $route->via($val['via']);
         } else {
             $route->via('GET');
         }
         if (isset($val['name'])) {
             $route->name($val['name']);
         }
         if (isset($val['assert'])) {
             if (!is_array($val['assert'])) {
                 $route->assert($val['assert']);
             } else {
                 foreach ($val['assert'] as $k => $cond) {
                     if (is_int($k)) {
                         $route->assert($cond);
                         continue;
                     }
                     $route->assert($k, $cond);
                 }
             }
         }
     }
 }
コード例 #2
0
ファイル: BasicRouteTest.php プロジェクト: ranyuen/little
 /**
  * Variables passed to controllers are detected from both Type hint and var name.
  *
  * |Passed variable     |Type hint |Variable name                    |
  * |--------------------|----------|---------------------------------|
  * |Current request.    |Request   |$req, $request                   |
  * |Caused exception.   |\Exception|$e, $ex, $exception, $err, $error|
  * |Binding router.     |Router    |$router                          |
  * |Params in URL.      |none.     |$matches                         |
  * |Each request params.|none.     |Param name.                      |
  */
 public function testControllerArgs()
 {
     $test = $this;
     $r = new Router();
     $r->map('/args', function ($req, $request, Request $q, $router, Router $r) use($test) {
         $test->assertInstanceOf('Ranyuen\\Little\\Request', $req);
         $test->assertInstanceOf('Ranyuen\\Little\\Request', $request);
         $test->assertInstanceOf('Ranyuen\\Little\\Request', $q);
         $test->assertInstanceOf('Ranyuen\\Little\\Router', $router);
         $test->assertInstanceOf('Ranyuen\\Little\\Router', $r);
         $test->assertEquals('mOmonga', $req->get('name'));
         $test->assertEquals('mOmonga', $request->get('name'));
         $test->assertEquals('mOmonga', $q->get('name'));
         return new Response('args');
     })->via('GET', 'POST');
     $req = Request::create('/args?name=mOmonga');
     $res = $r->run($req);
     $this->assertEquals(200, $res->getStatusCode());
     $this->assertEquals('args', $res->getContent());
     $req = Request::create('/args', 'POST', ['name' => 'mOmonga']);
     $res = $r->run($req);
     $this->assertEquals(200, $res->getStatusCode());
     $this->assertEquals('args', $res->getContent());
 }