function ViewsData::getData

Same name and namespace in other branches
  1. 9 core/modules/views/src/ViewsData.php \Drupal\views\ViewsData::getData()
  2. 8.9.x core/modules/views/src/ViewsData.php \Drupal\views\ViewsData::getData()
  3. 10 core/modules/views/src/ViewsData.php \Drupal\views\ViewsData::getData()

Gets all data invoked by hook_views_data().

This is requested from the cache before being rebuilt.

Return value

array An array of all data.

2 calls to ViewsData::getData()
ViewsData::get in core/modules/views/src/ViewsData.php
Gets data for a particular table.
ViewsData::getAll in core/modules/views/src/ViewsData.php
Gets all table data.

File

core/modules/views/src/ViewsData.php, line 210

Class

ViewsData
Class to manage and lazy load cached views data.

Namespace

Drupal\views

Code

protected function getData() {
    $this->fullyLoaded = TRUE;
    if ($data = $this->cacheGet($this->baseCid)) {
        return $data->data;
    }
    else {
        $data = [];
        $this->moduleHandler
            ->invokeAllWith('views_data', function (callable $hook, string $module) use (&$data) {
            $views_data = $hook();
            // Set the provider key for each base table.
            foreach ($views_data as &$table) {
                if (isset($table['table']) && !isset($table['table']['provider'])) {
                    $table['table']['provider'] = $module;
                }
            }
            $data = NestedArray::mergeDeep($data, $views_data);
        });
        $this->moduleHandler
            ->alter('views_data', $data);
        $this->processEntityTypes($data);
        // Keep a record with all data.
        $this->cacheSet($this->baseCid, $data);
        return $data;
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.