示例#1
0
 /**
  * Permet de définir des groupes de routes pour ne pas
  * avoir à recopier certaines parties de la route
  *
  * @param string|array $options
  * @param callable $callback
  */
 public function group($options, callable $callback)
 {
     $groupOptions = ['prefix' => '', 'middlewares' => []];
     if (is_string($options)) {
         $groupOptions['prefix'] = $options;
     } else {
         $groupOptions = array_merge($groupOptions, $options);
     }
     $this->groups->add($groupOptions['prefix'], $groupOptions['middlewares']);
     $callback($this);
     $this->groups->remove();
 }
示例#2
0
 /**
  * Test l'ajout, la suppression et la génération des éléments
  */
 public function testLinkedList()
 {
     $test = new RouteGroup();
     // Add prefix and empty middleware
     $test->add('/news', []);
     $this->assertEquals('news/', $test->prefix);
     $this->assertCount(0, $test->middlewares);
     // Add empty prefix and middleware with value
     $test->add('', ['auth' => true]);
     $this->assertEquals('news/', $test->prefix);
     $this->assertCount(1, $test->middlewares);
     $this->assertSame(true, $test->middlewares['auth']);
     // Add prefix and simple middleware
     $test->add('/news', ['salut']);
     $this->assertEquals('news/news/', $test->prefix);
     $this->assertCount(2, $test->middlewares);
     $this->assertSame('salut', $test->middlewares['salut']);
     // Add prefix and name middleware with same back value
     $test->add('/admin', ['salut' => 'ca va']);
     $this->assertEquals('news/news/admin/', $test->prefix);
     $this->assertSame('ca va', $test->middlewares['salut']);
     $this->assertCount(2, $test->middlewares);
     // On retire les éléments
     $test->remove();
     $this->assertEquals('news/news/', $test->prefix);
     $this->assertCount(2, $test->middlewares);
     $this->assertSame('salut', $test->middlewares['salut']);
     $test->remove();
     $this->assertEquals('news/', $test->prefix);
     $this->assertCount(1, $test->middlewares);
     $this->assertSame(true, $test->middlewares['auth']);
     $test->remove();
     $this->assertEquals('news/', $test->prefix);
     $this->assertCount(0, $test->middlewares);
     $test->remove();
     $this->assertEquals('', $test->prefix);
     $this->assertCount(0, $test->middlewares);
 }