class DisplayPluginCollection
A class which wraps the displays of a view so you can lazy-initialize them.
Hierarchy
- class \Drupal\Component\Plugin\LazyPluginCollection implements \Drupal\Component\Plugin\IteratorAggregate, \Drupal\Component\Plugin\Countable
- class \Drupal\Core\Plugin\DefaultLazyPluginCollection uses \Drupal\Core\DependencyInjection\DependencySerializationTrait extends \Drupal\Component\Plugin\LazyPluginCollection
- class \Drupal\views\DisplayPluginCollection extends \Drupal\Core\Plugin\DefaultLazyPluginCollection
 
 
 - class \Drupal\Core\Plugin\DefaultLazyPluginCollection uses \Drupal\Core\DependencyInjection\DependencySerializationTrait extends \Drupal\Component\Plugin\LazyPluginCollection
 
Expanded class hierarchy of DisplayPluginCollection
1 file declares its use of DisplayPluginCollection
- ViewExecutableTest.php in core/
modules/ views/ tests/ src/ Kernel/ ViewExecutableTest.php  
File
- 
              core/
modules/ views/ src/ DisplayPluginCollection.php, line 12  
Namespace
Drupal\viewsView source
class DisplayPluginCollection extends DefaultLazyPluginCollection {
  
  /**
   * Stores a reference to the view which has this displays attached.
   *
   * @var \Drupal\views\ViewExecutable
   */
  protected $view;
  
  /**
   * {@inheritdoc}
   */
  protected $pluginKey = 'display_plugin';
  
  /**
   * Constructs a DisplayPluginCollection object.
   *
   * @param \Drupal\views\ViewExecutable $view
   *   The view which has this displays attached.
   * @param \Drupal\Component\Plugin\PluginManagerInterface $manager
   *   The manager to be used for instantiating plugins.
   */
  public function __construct(ViewExecutable $view, PluginManagerInterface $manager) {
    parent::__construct($manager, $view->storage
      ->get('display'));
    $this->view = $view;
    $this->initializePlugin('default');
  }
  
  /**
   * Destructs a DisplayPluginCollection object.
   */
  public function __destruct() {
    $this->clear();
  }
  
  /**
   * {@inheritdoc}
   *
   * @return \Drupal\views\Plugin\views\display\DisplayPluginBase
   */
  public function &get($instance_id) {
    return parent::get($instance_id);
  }
  
  /**
   * {@inheritdoc}
   */
  public function clear() {
    foreach (array_filter($this->pluginInstances) as $display) {
      $display->destroy();
    }
    parent::clear();
  }
  
  /**
   * {@inheritdoc}
   */
  protected function initializePlugin($display_id) {
    // Retrieve and initialize the new display handler with data.
    $display =& $this->view->storage
      ->getDisplay($display_id);
    try {
      $this->configurations[$display_id] = $display;
      parent::initializePlugin($display_id);
    } catch (PluginException $e) {
      $message = $e->getMessage();
      \Drupal::messenger()->addWarning(t('@message', [
        '@message' => $message,
      ]));
    }
    // If no plugin instance has been created, return NULL.
    if (empty($this->pluginInstances[$display_id])) {
      return NULL;
    }
    $this->pluginInstances[$display_id]
      ->initDisplay($this->view, $display);
    // If this is not the default display handler, let it know which is since
    // it may well use some data from the default.
    if ($display_id != 'default') {
      $this->pluginInstances[$display_id]->default_display = $this->pluginInstances['default'];
    }
  }
  
  /**
   * {@inheritdoc}
   */
  public function remove($instance_id) {
    $this->get($instance_id)
      ->remove();
    parent::remove($instance_id);
  }
}
Members
| Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides | 
|---|---|---|---|---|---|
| DefaultLazyPluginCollection::$configurations | protected | property | The initial configuration for each plugin in the collection. | ||
| DefaultLazyPluginCollection::$manager | protected | property | The manager used to instantiate the plugins. | ||
| DefaultLazyPluginCollection::$originalOrder | protected | property | The original order of the instances. | ||
| DefaultLazyPluginCollection::addInstanceId | public | function | Adds an instance ID to the available instance IDs. | Overrides LazyPluginCollection::addInstanceId | |
| DefaultLazyPluginCollection::getConfiguration | public | function | Gets the current configuration of all plugins in this collection. | Overrides LazyPluginCollection::getConfiguration | 2 | 
| DefaultLazyPluginCollection::removeInstanceId | public | function | Removes an instance ID. | Overrides LazyPluginCollection::removeInstanceId | |
| DefaultLazyPluginCollection::setConfiguration | public | function | Sets the configuration for all plugins in this collection. | Overrides LazyPluginCollection::setConfiguration | |
| DefaultLazyPluginCollection::setInstanceConfiguration | public | function | Updates the configuration for a plugin instance. | ||
| DefaultLazyPluginCollection::sort | public | function | Sorts all plugin instances in this collection. | 1 | |
| DefaultLazyPluginCollection::sortHelper | public | function | Provides uasort() callback to sort plugins. | 2 | |
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | ||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | ||
| DependencySerializationTrait::__sleep | public | function | 2 | ||
| DependencySerializationTrait::__wakeup | public | function | #[\ReturnTypeWillChange] | 2 | |
| DisplayPluginCollection::$pluginKey | protected | property | The key within the plugin configuration that contains the plugin ID. | Overrides DefaultLazyPluginCollection::$pluginKey | |
| DisplayPluginCollection::$view | protected | property | Stores a reference to the view which has this displays attached. | ||
| DisplayPluginCollection::clear | public | function | Clears all instantiated plugins. | Overrides LazyPluginCollection::clear | |
| DisplayPluginCollection::get | public | function | Overrides LazyPluginCollection::get | ||
| DisplayPluginCollection::initializePlugin | protected | function | Initializes and stores a plugin. | Overrides DefaultLazyPluginCollection::initializePlugin | |
| DisplayPluginCollection::remove | public | function | Removes an initialized plugin. | Overrides LazyPluginCollection::remove | |
| DisplayPluginCollection::__construct | public | function | Constructs a DisplayPluginCollection object. | Overrides DefaultLazyPluginCollection::__construct | |
| DisplayPluginCollection::__destruct | public | function | Destructs a DisplayPluginCollection object. | ||
| LazyPluginCollection::$instanceIds | protected | property | Stores the IDs of all potential plugin instances. | ||
| LazyPluginCollection::$pluginInstances | protected | property | Stores all instantiated plugins. | ||
| LazyPluginCollection::count | public | function | #[\ReturnTypeWillChange] | ||
| LazyPluginCollection::getInstanceIds | public | function | Gets all instance IDs. | ||
| LazyPluginCollection::getIterator | public | function | #[\ReturnTypeWillChange] | ||
| LazyPluginCollection::has | public | function | Determines if a plugin instance exists. | ||
| LazyPluginCollection::set | public | function | Stores an initialized plugin. | 
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.