AESPluginManager.php in AES encryption 8.2
File
src/Plugin/AESPluginManager.php
View source
<?php
namespace Drupal\aes\Plugin;
use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Plugin\DefaultPluginManager;
class AESPluginManager extends DefaultPluginManager {
protected $instances = array();
public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
parent::__construct('Plugin/AES', $namespaces, $module_handler, 'Drupal\\aes\\Plugin\\AESPluginBase', 'Drupal\\aes\\Annotation\\Cryptor');
$this
->setCacheBackend($cache_backend, 'aes_encryptors');
$this->mapper = 'Would be nice to use some standard Singleton here, but so far using own implementation.';
}
public function getInstance(array $options) {
$plugin_id = $options['id'];
if (!isset($this->instances[$plugin_id])) {
$configuration = $options;
unset($configuration['id']);
$this->instances[$plugin_id] = parent::createInstance($plugin_id, $configuration);
}
return $this->instances[$plugin_id];
}
public function getInstanceById($plugin_id) {
if (!isset($this->instances[$plugin_id])) {
$this->instances[$plugin_id] = parent::createInstance($plugin_id);
}
return $this->instances[$plugin_id];
}
}