Inheritance: implements Symfony\Component\Routing\RouteCompilerInterface
 /**
  * Compiles the current route instance.
  *
  * Because so much of the parent class is private, we need to call the parent
  * class's compile() method and then dissect its return value to build our
  * new compiled object.  If upstream gets refactored so we can subclass more
  * easily then this may not be necessary.
  *
  * @param \Symfony\Component\Routing\Route $route
  *   A Route instance.
  *
  * @return \Drupal\Core\Routing\CompiledRoute
  *   A CompiledRoute instance.
  */
 public static function compile(Route $route)
 {
     $symfony_compiled = parent::compile($route);
     // The Drupal-specific compiled information.
     $stripped_path = static::getPathWithoutDefaults($route);
     $fit = static::getFit($stripped_path);
     $pattern_outline = static::getPatternOutline($stripped_path);
     $num_parts = count(explode('/', trim($pattern_outline, '/')));
     return new CompiledRoute($route, $fit, $pattern_outline, $num_parts, $symfony_compiled->getStaticPrefix(), $symfony_compiled->getRegex(), $symfony_compiled->getTokens(), $symfony_compiled->getPathVariables(), $symfony_compiled->getHostRegex(), $symfony_compiled->getHostTokens(), $symfony_compiled->getHostVariables(), $symfony_compiled->getVariables());
 }
Example #2
0
 /**
  * Compiles the current route instance.
  *
  * Because so much of the parent class is private, we need to call the parent
  * class's compile() method and then dissect its return value to build our
  * new compiled object.  If upstream gets refactored so we can subclass more
  * easily then this may not be necessary.
  *
  * @param \Symfony\Component\Routing\Route $route
  *   A Route instance.
  *
  * @return \Drupal\Core\Routing\CompiledRoute
  *   A CompiledRoute instance.
  */
 public static function compile(Route $route)
 {
     $symfony_compiled = parent::compile($route);
     // The Drupal-specific compiled information.
     $stripped_path = static::getPathWithoutDefaults($route);
     $fit = static::getFit($stripped_path);
     $pattern_outline = static::getPatternOutline($stripped_path);
     // We count the number of parts including any optional trailing parts. This
     // allows the RouteProvider to filter candidate routes more efficiently.
     $num_parts = count(explode('/', trim($route->getPath(), '/')));
     return new CompiledRoute($fit, $pattern_outline, $num_parts, $symfony_compiled->getStaticPrefix(), $symfony_compiled->getRegex(), $symfony_compiled->getTokens(), $symfony_compiled->getPathVariables(), $symfony_compiled->getHostRegex(), $symfony_compiled->getHostTokens(), $symfony_compiled->getHostVariables(), $symfony_compiled->getVariables());
 }
 public function getRoute($name)
 {
     $route = $this->router->match($name);
     $compiler = new RouteCompiler();
     return $compiler->compile($route);
 }