Пример #1
0
 /**
  * Adds routes from controller class.
  *
  * @param Route  $route
  * @param string $controller
  */
 protected function addController($route, $controller)
 {
     try {
         foreach ($this->loader->load($controller) as $r) {
             $this->addRoute($r->setName(trim("{$route->getName()}/{$r->getName()}", "/"))->setPath(rtrim($route->getPath() . $r->getPath(), '/'))->addDefaults($route->getDefaults())->addRequirements($route->getRequirements()));
         }
     } catch (\InvalidArgumentException $e) {
     }
 }
Пример #2
0
 /**
  * Adds all aliases for this route.
  *
  * @param Event           $event
  * @param Route           $route
  * @param RouteCollection $routes
  */
 public function onConfigureRoute($event, $route, $routes)
 {
     $name = $route->getName();
     $aliases = array_filter($this->routes->getAliases(), function ($alias) use($name) {
         return $name == $alias->getName() || $name == strtok($alias->getName(), '?');
     });
     if (!$aliases) {
         return;
     }
     $variables = $route->compile()->getPathVariables();
     foreach ($aliases as $alias) {
         // TODO: is this still needed?
         $params = [];
         if ($query = substr(strstr($alias->getName(), '?'), 1)) {
             parse_str($query, $params);
         }
         $routes->add($alias->getName(), new Route($alias->getPath(), array_merge($route->getDefaults(), $params, $alias->getDefaults(), ['_variables' => $variables])));
     }
 }