drupalmoduleupgrader-8.x-1.5/src/Plugin/DMU/Converter/Functions/DisableDeriver.php
src/Plugin/DMU/Converter/Functions/DisableDeriver.php
<?php
namespace Drupal\drupalmoduleupgrader\Plugin\DMU\Converter\Functions;
use Drupal\drupalmoduleupgrader\DeriverBase;
/**
* 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.
*/
class DisableDeriver extends DeriverBase {
/**
* {@inheritdoc}
*/
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;
}
}
