drupalmoduleupgrader-8.x-1.5/src/Plugin/DMU/Converter/HookFormAlter.php
src/Plugin/DMU/Converter/HookFormAlter.php
<?php
namespace Drupal\drupalmoduleupgrader\Plugin\DMU\Converter;
use Drupal\Core\Database\Query\Condition;
use Drupal\drupalmoduleupgrader\ConverterBase;
use Drupal\drupalmoduleupgrader\TargetInterface;
/**
* @Converter(
* id = "hook_form_alter",
* description = @Translation("Corrects hook_form_alter() function signatures.")
* )
*/
class HookFormAlter extends ConverterBase {
/**
* {@inheritdoc}
*/
public function convert(TargetInterface $target) {
$indexer = $target->getIndexer('function');
$query = $indexer->getQuery();
$db_or = new Condition('OR');
$db_or->condition('id', $target->id() . '_form_alter');
$db_or->condition('id', $query->escapeLike($target->id() . '_form_') . '%' . $query->escapeLike('_alter'), 'LIKE');
$query->condition($db_or);
$alter_hooks = $query->execute();
foreach ($alter_hooks as $alter_hook) {
/** @var \Pharborist\Functions\FunctionDeclarationNode $function */
$function = $indexer->get($alter_hook->id);
$parameters = $function->getParameters();
if (sizeof($parameters) > 1) {
$parameters[1]->setTypeHint('\Drupal\Core\Form\FormStateInterface');
$target->save($function);
}
}
}
}
