function DisplayPluginBase::getHandlers
Get a full array of handlers for $type. This caches them.
Return value
\Drupal\views\Plugin\views\ViewsHandlerInterface[]
Overrides DisplayPluginInterface::getHandlers
9 calls to DisplayPluginBase::getHandlers()
- DisplayPluginBase::calculateCacheMetadata in core/modules/ views/ src/ Plugin/ views/ display/ DisplayPluginBase.php 
- Calculates the display's cache metadata by inspecting each handler/plugin.
- DisplayPluginBase::getAllHandlers in core/modules/ views/ src/ Plugin/ views/ display/ DisplayPluginBase.php 
- Gets all the handlers used by the display.
- DisplayPluginBase::getFieldLabels in core/modules/ views/ src/ Plugin/ views/ display/ DisplayPluginBase.php 
- Retrieves a list of fields for the current display.
- DisplayPluginBase::getHandler in core/modules/ views/ src/ Plugin/ views/ display/ DisplayPluginBase.php 
- Get the handler object for a single handler.
- DisplayPluginBase::isIdentifierUnique in core/modules/ views/ src/ Plugin/ views/ display/ DisplayPluginBase.php 
- Checks if the provided identifier is unique.
File
- 
              core/modules/ views/ src/ Plugin/ views/ display/ DisplayPluginBase.php, line 847 
Class
- DisplayPluginBase
- Base class for views display plugins.
Namespace
Drupal\views\Plugin\views\displayCode
public function &getHandlers($type) {
  if (!isset($this->handlers[$type])) {
    $this->handlers[$type] = [];
    $types = ViewExecutable::getHandlerTypes();
    $plural = $types[$type]['plural'];
    // Cast to an array so that if the display does not have any handlers of
    // this type there is no PHP error.
    foreach ((array) $this->getOption($plural) as $id => $info) {
      // If this is during form submission and there are temporary options
      // which can only appear if the view is in the edit cache, use those
      // options instead. This is used for AJAX multi-step stuff.
      if ($this->view
        ->getRequest()->request
        ->get('form_id') && isset($this->view->temporary_options[$type][$id])) {
        $info = $this->view->temporary_options[$type][$id];
      }
      if ($info['id'] != $id) {
        $info['id'] = $id;
      }
      // If aggregation is on, the group type might override the actual
      // handler that is in use. This piece of code checks that and,
      // if necessary, sets the override handler.
      $override = NULL;
      if ($this->useGroupBy() && !empty($info['group_type'])) {
        if (empty($this->view->query)) {
          $this->view
            ->initQuery();
        }
        $aggregate = $this->view->query
          ->getAggregationInfo();
        if (!empty($aggregate[$info['group_type']]['handler'][$type])) {
          $override = $aggregate[$info['group_type']]['handler'][$type];
        }
      }
      if (!empty($types[$type]['type'])) {
        $handler_type = $types[$type]['type'];
      }
      else {
        $handler_type = $type;
      }
      if ($handler = Views::handlerManager($handler_type)->getHandler($info, $override)) {
        // Special override for area types so they know where they come from.
        if ($handler instanceof AreaPluginBase) {
          $handler->areaType = $type;
        }
        $handler->init($this->view, $this, $info);
        $this->handlers[$type][$id] =& $handler;
      }
      // Prevent reference problems.
      unset($handler);
    }
  }
  return $this->handlers[$type];
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
