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);
      }
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc