You are here

public function DisableDeriver::getDerivativeDefinitions in Drupal 7 to 8/9 Module Upgrader 8

Gets the definition of all derivatives of a base plugin.

Parameters

array $base_plugin_definition: The definition array of the base plugin.

Return value

array An array of full derivative definitions keyed on derivative id.

Overrides DeriverInterface::getDerivativeDefinitions

See also

getDerivativeDefinition()

File

src/Plugin/DMU/Converter/Functions/DisableDeriver.php, line 17

Class

DisableDeriver
Builds derivative definitions for the _disable plugin, based on a bundled configuration file. This allows us (plugin authors) to easily define which function calls can be commented out.

Namespace

Drupal\drupalmoduleupgrader\Plugin\DMU\Converter\Functions

Code

public function getDerivativeDefinitions($base_definition) {
  $derivatives = [];
  $config = \Drupal::config('drupalmoduleupgrader.functions')
    ->get('definitions');
  foreach ($config as $key => $info) {

    // Only disable functions that have been explicitly marked for disabling.
    if (empty($info['disable'])) {
      continue;
    }

    // $key can either be the name of a single function, or an arbitrary string
    // identifying a group of functions to handle.
    if (empty($info['functions'])) {
      $info['functions'] = [
        $key,
      ];
    }
    foreach ($info['functions'] as $function) {
      $derivative = $base_definition;
      $variables = [
        '@function' => $function . '()',
      ];
      $derivative['function'] = $function;
      $derivative['description'] = $this
        ->t('Disables calls to @function().', $variables);
      if (isset($info['fixme'])) {
        $derivative['fixme'] = $this
          ->t($info['fixme'], $variables);
      }
      $derivative['documentation'] = $info['documentation'];
      $derivatives[$function] = $derivative;
    }
  }
  return $derivatives;
}