| Code Coverage | ||||||||||
| Classes and Traits | Functions and Methods | Lines | ||||||||
| Total |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 1 | CRAP |  | 0.00% | 0 / 7 | 
| PluginDependencyTrait |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 1 | 20 |  | 0.00% | 0 / 7 | 
| calculatePluginDependencies |  | 0.00% | 0 / 1 | 20 |  | 0.00% | 0 / 7 | |||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Plugin\PluginDependencyTrait. | |
| */ | |
| namespace Drupal\Core\Plugin; | |
| use Drupal\Component\Plugin\DependentPluginInterface; | |
| use Drupal\Component\Plugin\PluginInspectionInterface; | |
| use Drupal\Core\Entity\DependencyTrait; | |
| /** | |
| * Provides a trait for calculating the dependencies of a plugin. | |
| */ | |
| trait PluginDependencyTrait { | |
| use DependencyTrait; | |
| /** | |
| * 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) { | |
| $definition = $instance->getPluginDefinition(); | |
| $this->addDependency('module', $definition['provider']); | |
| // Plugins can declare additional dependencies in their definition. | |
| if (isset($definition['config_dependencies'])) { | |
| $this->addDependencies($definition['config_dependencies']); | |
| } | |
| // If a plugin is dependent, calculate its dependencies. | |
| if ($instance instanceof DependentPluginInterface && $plugin_dependencies = $instance->calculateDependencies()) { | |
| $this->addDependencies($plugin_dependencies); | |
| } | |
| } | |
| } |