RecipientTypePluginCollection.php in Workbench Email 8
File
src/RecipientTypePluginCollection.php
View source
<?php
namespace Drupal\workbench_email;
use Drupal\Component\Utility\NestedArray;
use Drupal\Core\Plugin\DefaultLazyPluginCollection;
class RecipientTypePluginCollection extends DefaultLazyPluginCollection {
protected $definitions;
public function &get($instance_id) {
return parent::get($instance_id);
}
public function getAll() {
if (!$this->definitions) {
$this->definitions = $this->manager
->getDefinitions();
}
foreach ($this->definitions as $plugin_id => $definition) {
if (!isset($this->pluginInstances[$plugin_id])) {
$this
->initializePlugin($plugin_id);
}
}
return $this->pluginInstances;
}
protected function initializePlugin($instance_id) {
$configuration = $this->manager
->getDefinition($instance_id);
if (isset($this->configurations[$instance_id])) {
$configuration = NestedArray::mergeDeep($configuration, $this->configurations[$instance_id]);
}
$this->configurations[$instance_id] = $configuration;
parent::initializePlugin($instance_id);
}
public function sort() {
$this
->getAll();
return parent::sort();
}
}