drupalmoduleupgrader-8.x-1.5/src/Plugin/DMU/Fixer/Implement.php

src/Plugin/DMU/Fixer/Implement.php
<?php

namespace Drupal\drupalmoduleupgrader\Plugin\DMU\Fixer;

use Drupal\drupalmoduleupgrader\FixerBase;
use Pharborist\DocCommentNode;
use Pharborist\Objects\ClassMethodNode;

/**
 * @Fixer(
 *  id = "implement"
 * )
 */
class Implement extends FixerBase {

  public function execute() {
    /** @var \Pharborist\Objects\ClassNode $class */
    $class = $this
      ->target
      ->getIndexer('class')
      ->get($this->configuration['target']);

    // Use reflection to get the method definition.
    list ($interface, $method) = explode('::', $this->configuration['definition']);
    $interface = new \ReflectionClass($interface);
    $method = $interface->getMethod($method);

    $node = ClassMethodNode::create($method->getName());
    $node->setDocComment(DocCommentNode::create('@inheritdoc'));
    $class->appendMethod($node);
    $node->matchReflector($method);

    // @TODO There needs to be a way to implement the method body!
    $this->target->save($class);
  }

}

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

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