Example #1
0
 public function testCreate()
 {
     $endPoint = new Point\ControllerDynamicAction(['controller' => 'DemoController']);
     $route = new Route('demo/{:id}/', $endPoint, ['id' => '\\d+'], Route::ONLY_XHR, ['get']);
     self::assertTrue($route->getPoint() instanceof Point\IPoint);
     self::assertEquals('demo/{:id}/', $route->getPath());
     self::assertCount(1, $route->getMethods());
     self::assertEquals(['GET'], $route->getMethods());
     self::assertCount(1, $route->getRestrictions());
     self::assertEquals(['id' => '\\d+'], $route->getRestrictions());
     self::assertEquals(Route::ONLY_XHR, $route->typeRequest);
 }
Example #2
0
 /**
  * @param Route $route
  * @return string
  */
 protected function getRegExp(Route $route)
 {
     $regexp = $route->getPath();
     $restrictions = $route->getRestrictions();
     if (preg_match_all('~{(.*)}~Uiu', $regexp, $placeholders)) {
         foreach ($placeholders[0] as $index => $match) {
             $name = $placeholders[1][$index];
             $replace = array_key_exists($name, $restrictions) ? $restrictions[$name] : '.*';
             $replace = '(?<' . $name . '>' . $replace . ')';
             $regexp = str_replace($match, $replace, $regexp);
         }
     }
     return $regexp;
 }