protected function PluginDependencyTrait::getPluginDependencies in Markdown 8.2
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.
Parameters
\Drupal\Component\Plugin\PluginInspectionInterface $instance: The plugin instance.
Return value
array An array of dependencies keyed by the type of dependency.
2 calls to PluginDependencyTrait::getPluginDependencies()
- InstallablePluginBase::getPluginDependencies in src/Plugin/ Markdown/ InstallablePluginBase.php 
- PluginDependencyTrait::calculatePluginDependencies in src/BcSupport/ PluginDependencyTrait.php 
- Calculates and adds dependencies of a specific plugin instance.
File
- src/BcSupport/ PluginDependencyTrait.php, line 39 
Class
- PluginDependencyTrait
- Provides a trait for calculating the dependencies of a plugin.
Namespace
Drupal\markdown\BcSupportCode
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;
}