Example #1
0
 /**
  * Adds a route.
  *
  * @param string|array $setting
  * @param string|null  $name
  *
  * @return Router
  */
 public function addRoute($setting, $name = null)
 {
     if (is_string($setting)) {
         $route = new Route($setting);
     } else {
         $setting = new RouteSetting($setting);
         $route = new Route($setting->pattern);
         $route->getUrlParams()->setValues($setting->defaultValues)->requireOffsets($setting->requiredParams);
         $methods = $route->getHttpMethods();
         foreach ($setting->httpMethods as $method) {
             $methods[$method] = true;
         }
     }
     if (isset($name)) {
         $this->routes[$name] = $route;
     } else {
         $this->routes[] = $route;
     }
     return $this;
 }
Example #2
0
 /**
  * @test
  * @depends match_withWildcard_returnTrue
  * @param Route $route
  * @return Data
  */
 public function getUrlParams_withWildcard_returnData(Route $route)
 {
     $params = $route->getUrlParams();
     $this->assertEquals(3, count($params->toArray()));
     $this->assertSame(['name' => ['first', 'last'], 'date' => ['year', 'month', 'day'], 'time' => ['hour', 'minute', 'second']], $params->toArray());
     return $params;
 }