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;
 }