Example #1
0
 public function testCustomPattern()
 {
     $r = new Router();
     $r->setPattern('as', '/a+/');
     $r->setPattern('bs', 'b+');
     $r->get('/{as}/{bs}', function (Context $ctx) {
         return $ctx;
     });
     $r->get('/{one:bs}/{two:as}', function (Context $ctx) {
         return $ctx;
     });
     $d1 = $r->dispatch('GET', '/aaaa/bb');
     $this->assertInstanceOf(Context::class, $d1);
     $this->assertEquals(['as' => 'aaaa', 'bs' => 'bb'], $d1->getPathParams());
     $d2 = $r->dispatch('GET', '/bbbb/aaa');
     $this->assertInstanceOf(Context::class, $d2);
     $this->assertEquals(['one' => 'bbbb', 'two' => 'aaa'], $d2->getPathParams());
 }