You are here

public function LazyRouteFilter::setFilters in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Routing/LazyRouteFilter.php \Drupal\Core\Routing\LazyRouteFilter::setFilters()

For each route, filter down the route collection.

Parameters

\Symfony\Component\Routing\RouteCollection $route_collection: A collection of routes to apply filter checks to.

File

core/lib/Drupal/Core/Routing/LazyRouteFilter.php, line 58
Contains \Drupal\Core\Routing\LazyRouteFilter.

Class

LazyRouteFilter
A route filter which lazily loads route filters, depending on the route.

Namespace

Drupal\Core\Routing

Code

public function setFilters(RouteCollection $route_collection) {

  /** @var \Symfony\Component\Routing\Route $route **/
  foreach ($route_collection as $route) {
    $service_ids = [];
    foreach ($this
      ->getFilters() as $service_id => $filter) {
      if ($filter instanceof RouteFilterInterface && $filter
        ->applies($route)) {
        $service_ids[] = $service_id;
      }
    }
    if ($service_ids) {
      $route
        ->setOption('_route_filters', array_unique($service_ids));
    }
  }
}