function EventInfoController::eventList

Same name in other branches
  1. 5.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;
}