/** * 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) { } }
/** * 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]))); } }