You are here

public function EventInfoController::eventList in Devel 8.3

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

Builds the events overview page.

Return value

array A render array as expected by the renderer.

1 string reference to 'EventInfoController::eventList'
devel.routing.yml in ./devel.routing.yml
devel.routing.yml

File

src/Controller/EventInfoController.php, line 46

Class

EventInfoController
Provides route responses for the event info page.

Namespace

Drupal\devel\Controller

Code

public function eventList() {
  $headers = [
    'name' => [
      'data' => $this
        ->t('Event Name'),
      'class' => 'visually-hidden',
    ],
    'callable' => $this
      ->t('Callable'),
    'priority' => $this
      ->t('Priority'),
  ];
  $event_listeners = $this->eventDispatcher
    ->getListeners();
  ksort($event_listeners);
  $rows = [];
  foreach ($event_listeners as $event_name => $listeners) {
    $rows[][] = [
      'data' => $event_name,
      'class' => [
        'devel-event-name-header',
      ],
      'filter' => TRUE,
      'colspan' => '3',
      'header' => TRUE,
    ];
    foreach ($listeners as $listener) {
      $row['name'] = [
        'data' => $event_name,
        'class' => [
          'visually-hidden',
        ],
        'filter' => TRUE,
      ];
      $row['class'] = [
        'data' => $this
          ->resolveCallableName($listener),
      ];
      $row['priority'] = [
        'data' => $this->eventDispatcher
          ->getListenerPriority($event_name, $listener),
      ];
      $rows[] = $row;
    }
  }
  $output['events'] = [
    '#type' => 'devel_table_filter',
    '#filter_label' => $this
      ->t('Search'),
    '#filter_placeholder' => $this
      ->t('Enter event name'),
    '#filter_description' => $this
      ->t('Enter a part of the event name to filter by.'),
    '#header' => $headers,
    '#rows' => $rows,
    '#empty' => $this
      ->t('No events found.'),
    '#attributes' => [
      'class' => [
        'devel-event-list',
      ],
    ],
  ];
  return $output;
}