You are here

public function RouteInfoController::routeList in Devel 8.3

Same name and namespace in other branches
  1. 8 src/Controller/RouteInfoController.php \Drupal\devel\Controller\RouteInfoController::routeList()
  2. 8.2 src/Controller/RouteInfoController.php \Drupal\devel\Controller\RouteInfoController::routeList()
  3. 4.x src/Controller/RouteInfoController.php \Drupal\devel\Controller\RouteInfoController::routeList()

Builds the routes overview page.

Return value

array A render array as expected by the renderer.

1 string reference to 'RouteInfoController::routeList'
devel.routing.yml in ./devel.routing.yml
devel.routing.yml

File

src/Controller/RouteInfoController.php, line 74

Class

RouteInfoController
Provides route responses for the route info pages.

Namespace

Drupal\devel\Controller

Code

public function routeList() {
  $headers = [
    $this
      ->t('Route Name'),
    $this
      ->t('Path'),
    $this
      ->t('Allowed Methods'),
    $this
      ->t('Operations'),
  ];
  $rows = [];
  foreach ($this->routeProvider
    ->getAllRoutes() as $route_name => $route) {
    $row['name'] = [
      'data' => $route_name,
      'filter' => TRUE,
    ];
    $row['path'] = [
      'data' => $route
        ->getPath(),
      'filter' => TRUE,
    ];
    $row['methods']['data'] = [
      '#theme' => 'item_list',
      '#items' => $route
        ->getMethods(),
      '#empty' => $this
        ->t('ANY'),
      '#context' => [
        'list_style' => 'comma-list',
      ],
    ];

    // We cannot resolve routes with dynamic parameters from route path. For
    // these routes we pass the route name.
    // @see ::routeItem()
    if (strpos($route
      ->getPath(), '{') !== FALSE) {
      $parameters = [
        'query' => [
          'route_name' => $route_name,
        ],
      ];
    }
    else {
      $parameters = [
        'query' => [
          'path' => $route
            ->getPath(),
        ],
      ];
    }
    $row['operations']['data'] = [
      '#type' => 'operations',
      '#links' => [
        'devel' => [
          'title' => $this
            ->t('Devel'),
          'url' => Url::fromRoute('devel.route_info.item', [], $parameters),
          'attributes' => [
            'class' => [
              'use-ajax',
            ],
            'data-dialog-type' => 'modal',
            'data-dialog-options' => Json::encode([
              'width' => 700,
              'minHeight' => 500,
            ]),
          ],
        ],
      ],
    ];
    $rows[] = $row;
  }
  $output['routes'] = [
    '#type' => 'devel_table_filter',
    '#filter_label' => $this
      ->t('Search'),
    '#filter_placeholder' => $this
      ->t('Enter route name or path'),
    '#filter_description' => $this
      ->t('Enter a part of the route name or path to filter by.'),
    '#header' => $headers,
    '#rows' => $rows,
    '#empty' => $this
      ->t('No routes found.'),
    '#sticky' => TRUE,
    '#attributes' => [
      'class' => [
        'devel-route-list',
      ],
    ],
  ];
  return $output;
}