drupalmoduleupgrader-8.x-1.5/src/Plugin/DMU/Fixer/FormCallbackToMethod.php
src/Plugin/DMU/Fixer/FormCallbackToMethod.php
<?php
namespace Drupal\drupalmoduleupgrader\Plugin\DMU\Fixer;
use Drupal\drupalmoduleupgrader\FixerBase;
/**
* @Fixer(
* id = "form_callback_to_method"
* )
*/
class FormCallbackToMethod extends FixerBase {
public function execute() {
/** @var \Pharborist\Functions\FunctionDeclarationNode $callback */
$callback = $this
->target
->getIndexer('function')
->get($this->configuration['callback']);
list ($class, $method_name) = explode('::', $this->configuration['destination']);
/** @var \Pharborist\Objects\ClassNode $class */
$class = $this
->target
->getIndexer('class')
->get($class);
$method = $callback->cloneAsMethodOf($class)->setName($method_name);
$form_interface = new \ReflectionClass('\Drupal\Core\Form\FormInterface');
if ($form_interface->hasMethod($method_name)) {
$method->matchReflector($form_interface->getMethod($method_name));
}
$this->target->save($method);
}
}
