abstract class GridStackPluginManagerBase in GridStack 8.2
Implements GridStackPluginManagerInterface.
Hierarchy
- class \Drupal\Component\Plugin\PluginManagerBase implements PluginManagerInterface uses DiscoveryTrait
- class \Drupal\Core\Plugin\DefaultPluginManager implements CachedDiscoveryInterface, PluginManagerInterface, CacheableDependencyInterface uses DiscoveryCachedTrait, UseCacheBackendTrait
- class \Drupal\gridstack\GridStackPluginManagerBase implements MapperInterface, GridStackPluginManagerInterface uses StringTranslationTrait
- class \Drupal\Core\Plugin\DefaultPluginManager implements CachedDiscoveryInterface, PluginManagerInterface, CacheableDependencyInterface uses DiscoveryCachedTrait, UseCacheBackendTrait
Expanded class hierarchy of GridStackPluginManagerBase
1 string reference to 'GridStackPluginManagerBase'
1 service uses GridStackPluginManagerBase
File
- src/
GridStackPluginManagerBase.php, line 17
Namespace
Drupal\gridstackView source
abstract class GridStackPluginManagerBase extends DefaultPluginManager implements GridStackPluginManagerInterface, MapperInterface {
use StringTranslationTrait;
/**
* The config factory.
*
* @var \Drupal\Core\Config\ConfigFactoryInterface
*/
protected $config;
/**
* The plugin path.
*
* @var string
*/
protected static $path = 'Plugin/gridstack';
/**
* The plugin interface.
*
* @var string
*/
protected static $interface = 'Drupal\\gridstack\\GridStackSkinPluginInterface';
/**
* The plugin annotation.
*
* @var string
*/
protected static $annotation = 'Drupal\\gridstack\\Annotation\\GridStackSkin';
/**
* The plugin key.
*
* @var string
*/
protected static $key = 'gridstack_skin';
/**
* The plugin attachments.
*
* @var bool
*/
protected $attachments;
/**
* The implementors of a method.
*
* @var array
*/
protected $implementors;
/**
* {@inheritdoc}
*/
public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, ConfigFactoryInterface $config) {
parent::__construct(static::$path, $namespaces, $module_handler, static::$interface, static::$annotation);
$this->config = $config;
$this
->alterInfo(static::$key . '_info');
$this
->setCacheBackend($cache_backend, static::$key . '_plugins');
}
/**
* Returns gridstack config shortcut.
*/
public function config($key = '', $settings = 'gridstack.settings') {
return $this->config
->get($settings)
->get($key);
}
/**
* Returns cache backend service.
*/
public function getCache() {
return $this->cacheBackend;
}
/**
* {@inheritdoc}
*/
public function load($plugin_id, array $configuration = []) {
return $plugin_id && $this
->hasDefinition($plugin_id) ? $this
->createInstance($plugin_id, $configuration) : NULL;
}
/**
* Returns all available plugins.
*/
public function loadMultiple(array $configuration = []) {
$plugins = [];
foreach ($this
->getDefinitions() as $definition) {
array_push($plugins, $this
->createInstance($definition['id'], $configuration));
}
return $plugins;
}
/**
* Collects attachments from plugins.
*/
protected function setAttachments(array &$load, array $attach = []) {
if (!$this->attachments) {
if ($implementors = $this
->getImplementors('attach')) {
foreach ($implementors as $id) {
$this
->load($id, $attach)
->attach($load, $attach);
}
}
$this->attachments = TRUE;
}
}
/**
* Returns plugins names implementing a method.
*/
protected function getImplementors($method) {
if (!isset($this->implementors[$method])) {
$cid = static::$key . '_' . $method;
if ($cache = $this->cacheBackend
->get($cid)) {
$this->implementors[$method] = $cache->data;
}
else {
$data = [];
foreach ($this
->loadMultiple() as $plugin) {
$class = $plugin
->get('class');
$reflection = new \ReflectionClass($class);
if ($reflection
->getMethod($method)->class == $class) {
$data[$plugin
->getPluginId()] = $plugin
->getPluginId();
}
}
ksort($data);
$count = count($data);
$tags = Cache::buildTags($cid, [
'count:' . $count,
]);
$this->cacheBackend
->set($cid, $data, Cache::PERMANENT, $tags);
$this->implementors[$method] = $data;
}
}
return $this->implementors[$method];
}
/**
* Returns gridstack plugin data.
*/
protected function getData(array $methods, $flatten = FALSE, array $configuration = []) {
$cid = static::$key . 's_data';
if ($cache = $this->cacheBackend
->get($cid)) {
return $cache->data;
}
else {
$data = $items = [];
foreach ($this
->loadMultiple($configuration) as $plugin) {
if ($flatten) {
foreach ($methods as $method) {
$data = NestedArray::mergeDeep($data, $plugin
->{$method}());
}
}
else {
foreach ($methods as $method) {
$items[$method] = $plugin
->{$method}();
}
$data = NestedArray::mergeDeep($data, $items);
}
}
ksort($data);
$count = count($data);
$tags = Cache::buildTags($cid, [
'count:' . $count,
]);
$this->cacheBackend
->set($cid, $data, Cache::PERMANENT, $tags);
return $data;
}
}
/**
* Returns available data for select options.
*/
public function getDataOptions(array $data) {
$options = [];
foreach ($data as $key => $properties) {
$options[$key] = isset($properties['name']) ? $properties['name'] : $key;
}
ksort($options);
return $options;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DefaultPluginManager:: |
protected | property | Additional namespaces the annotation discovery mechanism should scan for annotation definitions. | |
DefaultPluginManager:: |
protected | property | Name of the alter hook if one should be invoked. | |
DefaultPluginManager:: |
protected | property | The cache key. | |
DefaultPluginManager:: |
protected | property | An array of cache tags to use for the cached definitions. | |
DefaultPluginManager:: |
protected | property | A set of defaults to be referenced by $this->processDefinition() if additional processing of plugins is necessary or helpful for development purposes. | 9 |
DefaultPluginManager:: |
protected | property | The module handler to invoke the alter hook. | 1 |
DefaultPluginManager:: |
protected | property | An object that implements \Traversable which contains the root paths keyed by the corresponding namespace to look for plugin implementations. | |
DefaultPluginManager:: |
protected | property | The name of the annotation that contains the plugin definition. | |
DefaultPluginManager:: |
protected | property | The interface each plugin should implement. | 1 |
DefaultPluginManager:: |
protected | property | The subdirectory within a namespace to look for plugins, or FALSE if the plugins are in the top level of the namespace. | |
DefaultPluginManager:: |
protected | function | Invokes the hook to alter the definitions if the alter hook is set. | 1 |
DefaultPluginManager:: |
protected | function | Sets the alter hook name. | |
DefaultPluginManager:: |
public | function |
Clears static and persistent plugin definition caches. Overrides CachedDiscoveryInterface:: |
5 |
DefaultPluginManager:: |
protected | function | Extracts the provider from a plugin definition. | |
DefaultPluginManager:: |
protected | function | Finds plugin definitions. | 7 |
DefaultPluginManager:: |
private | function | Fix the definitions of context-aware plugins. | |
DefaultPluginManager:: |
public | function |
The cache contexts associated with this object. Overrides CacheableDependencyInterface:: |
|
DefaultPluginManager:: |
protected | function | Returns the cached plugin definitions of the decorated discovery class. | |
DefaultPluginManager:: |
public | function |
The maximum age for which this object may be cached. Overrides CacheableDependencyInterface:: |
|
DefaultPluginManager:: |
public | function |
The cache tags associated with this object. Overrides CacheableDependencyInterface:: |
|
DefaultPluginManager:: |
public | function |
Gets the definition of all plugins for this type. Overrides DiscoveryTrait:: |
2 |
DefaultPluginManager:: |
protected | function |
Gets the plugin discovery. Overrides PluginManagerBase:: |
12 |
DefaultPluginManager:: |
protected | function |
Gets the plugin factory. Overrides PluginManagerBase:: |
|
DefaultPluginManager:: |
public | function | Performs extra processing on plugin definitions. | 13 |
DefaultPluginManager:: |
protected | function | Determines if the provider of a definition exists. | 3 |
DefaultPluginManager:: |
public | function | Initialize the cache backend. | |
DefaultPluginManager:: |
protected | function | Sets a cache of plugin definitions for the decorated discovery class. | |
DefaultPluginManager:: |
public | function |
Disable the use of caches. Overrides CachedDiscoveryInterface:: |
1 |
DiscoveryCachedTrait:: |
protected | property | Cached definitions array. | 1 |
DiscoveryCachedTrait:: |
public | function |
Overrides DiscoveryTrait:: |
3 |
DiscoveryTrait:: |
protected | function | Gets a specific plugin definition. | |
DiscoveryTrait:: |
public | function | ||
GridStackPluginManagerBase:: |
protected static | property | The plugin annotation. | 2 |
GridStackPluginManagerBase:: |
protected | property | The plugin attachments. | |
GridStackPluginManagerBase:: |
protected | property | The config factory. | |
GridStackPluginManagerBase:: |
protected | property | The implementors of a method. | |
GridStackPluginManagerBase:: |
protected static | property | The plugin interface. | 2 |
GridStackPluginManagerBase:: |
protected static | property | The plugin key. | 2 |
GridStackPluginManagerBase:: |
protected static | property | The plugin path. | 2 |
GridStackPluginManagerBase:: |
public | function | Returns gridstack config shortcut. | |
GridStackPluginManagerBase:: |
public | function | Returns cache backend service. | |
GridStackPluginManagerBase:: |
protected | function | Returns gridstack plugin data. | |
GridStackPluginManagerBase:: |
public | function | Returns available data for select options. | |
GridStackPluginManagerBase:: |
protected | function | Returns plugins names implementing a method. | |
GridStackPluginManagerBase:: |
public | function |
Returns an instance of a plugin given a plugin id. Overrides GridStackPluginManagerInterface:: |
|
GridStackPluginManagerBase:: |
public | function | Returns all available plugins. | |
GridStackPluginManagerBase:: |
protected | function | Collects attachments from plugins. | |
GridStackPluginManagerBase:: |
public | function |
Creates the discovery object. Overrides DefaultPluginManager:: |
|
PluginManagerBase:: |
protected | property | The object that discovers plugins managed by this manager. | |
PluginManagerBase:: |
protected | property | The object that instantiates plugins managed by this manager. | |
PluginManagerBase:: |
protected | property | The object that returns the preconfigured plugin instance appropriate for a particular runtime condition. | |
PluginManagerBase:: |
public | function |
Creates a pre-configured instance of a plugin. Overrides FactoryInterface:: |
12 |
PluginManagerBase:: |
public | function |
Gets a preconfigured instance of a plugin. Overrides MapperInterface:: |
7 |
PluginManagerBase:: |
protected | function | Allows plugin managers to specify custom behavior if a plugin is not found. | 1 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UseCacheBackendTrait:: |
protected | property | Cache backend instance. | |
UseCacheBackendTrait:: |
protected | property | Flag whether caches should be used or skipped. | |
UseCacheBackendTrait:: |
protected | function | Fetches from the cache backend, respecting the use caches flag. | 1 |
UseCacheBackendTrait:: |
protected | function | Stores data in the persistent cache, respecting the use caches flag. |