/** * Constructs a PluginWrapper object. * * @param PluginInspectionInterface $plugin * The plugin to wrap. */ public function __construct(PluginInspectionInterface $plugin) { $this->plugin = $plugin; $this->pluginDefinition = $plugin->getPluginDefinition(); // For configurable plugins, expose those properties as well. if ($plugin instanceof ConfigurablePluginInterface) { $this->pluginConfiguration = $plugin->getConfiguration(); } }
/** * 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\ConfigurablePluginInterface. * * @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 configurable, calculate its dependencies. if ($instance instanceof ConfigurablePluginInterface && ($plugin_dependencies = $instance->calculateDependencies())) { $this->addDependencies($plugin_dependencies); } }