trait PluginDependencyTrait in Markdown 8.2
Provides a trait for calculating the dependencies of a plugin.
Hierarchy
- trait \Drupal\markdown\BcSupport\PluginDependencyTrait uses DependencyTrait
Deprecated
in markdown:8.x-2.0 and is removed from markdown:3.0.0. Use \Drupal\Core\Plugin\PluginDependencyTrait instead.
See also
\Drupal\Core\Plugin\PluginDependencyTrait
https://www.drupal.org/project/markdown/issues/3103679
1 file declares its use of PluginDependencyTrait
- InstallablePluginBase.php in src/
Plugin/ Markdown/ InstallablePluginBase.php
File
- src/
BcSupport/ PluginDependencyTrait.php, line 21
Namespace
Drupal\markdown\BcSupportView source
trait PluginDependencyTrait {
use DependencyTrait;
/**
* Calculates and returns dependencies of a specific plugin instance.
*
* Dependencies are added for the module that provides the plugin, as well
* as any dependencies declared by the instance's calculateDependencies()
* method, if it implements
* \Drupal\Component\Plugin\DependentPluginInterface.
*
* @param \Drupal\Component\Plugin\PluginInspectionInterface $instance
* The plugin instance.
*
* @return array
* An array of dependencies keyed by the type of dependency.
*/
protected function getPluginDependencies(PluginInspectionInterface $instance) {
$dependencies = [];
$definition = $instance
->getPluginDefinition();
$provider = NULL;
$config_dependencies = [];
if ($definition instanceof PluginDefinitionInterface) {
$provider = $definition
->getProvider();
if ($definition instanceof DependentPluginDefinitionInterface) {
$config_dependencies = $definition
->getConfigDependencies();
}
}
elseif (is_array($definition)) {
$provider = $definition['provider'];
if (isset($definition['config_dependencies'])) {
$config_dependencies = $definition['config_dependencies'];
}
}
// Add the provider as a dependency, taking into account if it's a module or
// a theme.
if ($provider) {
if ($provider === 'core' || $this
->moduleHandler()
->moduleExists($provider)) {
$dependencies['module'][] = $provider;
}
elseif ($this
->themeHandler()
->themeExists($provider)) {
$dependencies['theme'][] = $provider;
}
else {
@trigger_error('Declaring a dependency on an uninstalled module is deprecated in Drupal 8.7.0 and will not be supported in Drupal 9.0.0.', E_USER_DEPRECATED);
$dependencies['module'][] = $provider;
}
}
// Add the config dependencies.
if ($config_dependencies) {
$dependencies = NestedArray::mergeDeep($dependencies, $config_dependencies);
}
// If a plugin is dependent, calculate its dependencies.
if ($instance instanceof DependentPluginInterface && ($plugin_dependencies = $instance
->calculateDependencies())) {
$dependencies = NestedArray::mergeDeep($dependencies, $plugin_dependencies);
}
return $dependencies;
}
/**
* Calculates and adds dependencies of a specific plugin instance.
*
* Dependencies are added for the module that provides the plugin, as well
* as any dependencies declared by the instance's calculateDependencies()
* method, if it implements
* \Drupal\Component\Plugin\DependentPluginInterface.
*
* @param \Drupal\Component\Plugin\PluginInspectionInterface $instance
* The plugin instance.
*/
protected function calculatePluginDependencies(PluginInspectionInterface $instance) {
$this
->addDependencies($this
->getPluginDependencies($instance));
}
/**
* Wraps the module handler.
*
* @return \Drupal\Core\Extension\ModuleHandlerInterface
* The module handler.
*/
protected function moduleHandler() {
return \Drupal::moduleHandler();
}
/**
* Wraps the theme handler.
*
* @return \Drupal\Core\Extension\ThemeHandlerInterface
* The theme handler.
*/
protected function themeHandler() {
return \Drupal::service('theme_handler');
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. | |
PluginDependencyTrait:: |
protected | function | Calculates and adds dependencies of a specific plugin instance. | |
PluginDependencyTrait:: |
protected | function | Calculates and returns dependencies of a specific plugin instance. | |
PluginDependencyTrait:: |
protected | function | Wraps the module handler. | |
PluginDependencyTrait:: |
protected | function | Wraps the theme handler. |