class HookEntityInfo in Drupal 7 to 8/9 Module Upgrader 8
Plugin annotation
@Converter(
 id = "hook_entity_info",
 description = @Translation("Creates entity class boilerplate from hook_entity_info()."),
 hook = "hook_entity_info"
)
  Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\drupalmoduleupgrader\PluginBase implements ContainerFactoryPluginInterface
- class \Drupal\drupalmoduleupgrader\ConverterBase implements ConverterInterface
- class \Drupal\drupalmoduleupgrader\Plugin\DMU\Converter\HookEntityInfo uses StringTransformTrait
 
 
 - class \Drupal\drupalmoduleupgrader\ConverterBase implements ConverterInterface
 
 - class \Drupal\drupalmoduleupgrader\PluginBase implements ContainerFactoryPluginInterface
 
 - class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
 
Expanded class hierarchy of HookEntityInfo
File
- src/
Plugin/ DMU/ Converter/ HookEntityInfo.php, line 17  
Namespace
Drupal\drupalmoduleupgrader\Plugin\DMU\ConverterView source
class HookEntityInfo extends ConverterBase {
  use StringTransformTrait;
  /**
   * {@inheritdoc}
   */
  public function convert(TargetInterface $target) {
    try {
      $entity_types = $this
        ->executeHook($target, 'entity_info');
    } catch (\LogicException $e) {
      $this->log
        ->warning($e
        ->getMessage(), [
        'target' => $target
          ->id(),
        'hook' => $this->pluginDefinition['hook'],
      ]);
      return;
    }
    foreach ($entity_types as $id => $entity_type) {
      $entity_type['id'] = $id;
      $entity_type['base_table'] = $entity_type['base table'];
      unset($entity_type['base table']);
      $entity_type['keys'] = $entity_type['entity keys'];
      unset($entity_type['entity keys']);
      if (isset($entity_type['controller class'])) {
        /** @var \Pharborist\Objects\ClassNode $controller */
        $indexer = $target
          ->getIndexer('class');
        if ($indexer
          ->has($entity_type['controller class'])) {
          $controller = $indexer
            ->get($entity_type['controller class']);
          $parent = $controller
            ->getExtends();
          if ($parent) {
            if ($parent
              ->getText() == 'DrupalDefaultEntityController' || $parent
              ->getText() == 'EntityAPIController') {
              $controller
                ->setExtends('Drupal\\Core\\Entity\\Sql\\SqlContentEntityStorage');
            }
            else {
              // @todo Not entirely sure what to do here. It's not a huge problem
              // if the controller extends another class defined by the target
              // (which is, admittedly, an edge case), but if it extends a
              // controller defined by *another* module that isn't Entity API?
            }
          }
          // @todo Handle interfaces implemented by the entity controller.
          $this
            ->writeClass($target, PSR4::toPSR4($target, $controller));
          $entity_type['controllers']['storage'] = $controller
            ->getName()
            ->getAbsolutePath();
        }
        else {
          throw new \LogicException((new FormattableMarkup('Cannot get ahold of the controller class for @entity_type entity type.', [
            '@entity_type' => $id,
          ]))
            ->__toString());
        }
      }
      else {
        $entity_type['controllers']['storage'] = 'Drupal\\Core\\Entity\\Sql\\SqlContentEntityStorage';
      }
      $render = [
        '#module' => $target
          ->id(),
        '#class' => $this
          ->toTitleCase($id),
        '#theme' => 'dmu_entity_type',
        '#info' => $entity_type,
      ];
      $this
        ->writeClass($target, $this
        ->parse($render));
    }
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            ConverterBase:: | 
                  protected | function | Builds a FIXME notice using either the text in the plugin definition, or passed-in text. | |
| 
            ConverterBase:: | 
                  constant | |||
| 
            ConverterBase:: | 
                  protected | function | Executes the target module's implementation of the specified hook, and returns the result. | |
| 
            ConverterBase:: | 
                  protected | function | Creates an empty implementation of a hook. | |
| 
            ConverterBase:: | 
                  public | function | 
            Returns if this conversion applies to the target module. If FALSE,
the convert() method will not be called. Overrides ConverterInterface:: | 
                  4 | 
| 
            ConverterBase:: | 
                  constant | |||
| 
            ConverterBase:: | 
                  protected | function | Parses a generated class into a syntax tree. | |
| 
            ConverterBase:: | 
                  protected | function | Parametrically rewrites a function. | |
| 
            ConverterBase:: | 
                  public | function | Writes a file to the target module's directory. | |
| 
            ConverterBase:: | 
                  public | function | Writes a class to the target module's PSR-4 root. | |
| 
            ConverterBase:: | 
                  protected | function | Writes out arbitrary data in YAML format. | |
| 
            ConverterBase:: | 
                  protected | function | Writes a service definition to the target module's services.yml file. | |
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of entity type IDs keyed by the property name of their storages. | |
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of service IDs keyed by property name used for serialization. | |
| 
            DependencySerializationTrait:: | 
                  public | function | 1 | |
| 
            DependencySerializationTrait:: | 
                  public | function | 2 | |
| 
            HookEntityInfo:: | 
                  public | function | 
            Performs required conversions. Overrides ConverterInterface:: | 
                  |
| 
            MessengerTrait:: | 
                  protected | property | The messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Gets the messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Sets the messenger. | |
| 
            PluginBase:: | 
                  protected | property | Configuration information passed into the plugin. | 1 | 
| 
            PluginBase:: | 
                  protected | property | ||
| 
            PluginBase:: | 
                  protected | property | The plugin implementation definition. | 1 | 
| 
            PluginBase:: | 
                  protected | property | The plugin_id. | |
| 
            PluginBase:: | 
                  public static | function | 
            Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: | 
                  2 | 
| 
            PluginBase:: | 
                  constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| 
            PluginBase:: | 
                  public | function | 
            Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 
                  3 | 
| 
            PluginBase:: | 
                  public | function | 
            Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | Determines if the plugin is configurable. | |
| 
            PluginBase:: | 
                  public | function | 
            Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: | 
                  11 | 
| 
            StringTransformTrait:: | 
                  public | function | Deletes %wildcards from a route path. | |
| 
            StringTransformTrait:: | 
                  public | function | Deletes {wildcards} from a route path. | |
| 
            StringTransformTrait:: | 
                  public | function | Generates an identifier (prefixed with the module name, if $this->module exists) from an arbitrary string. | |
| 
            StringTransformTrait:: | 
                  public | function | Generates an identifier from a Drupal 7 path. | |
| 
            StringTransformTrait:: | 
                  public | function | Generates an identifier from a path. | |
| 
            StringTransformTrait:: | 
                  public | function | Converts a string toCamelCase :) | |
| 
            StringTransformTrait:: | 
                  public | function | Converts a string ToTitleCase. | |
| 
            StringTransformTrait:: | 
                  public | function | Trims a prefix (as well as leading or trailing underscore, if any) from a string. | |
| 
            StringTransformTrait:: | 
                  public | function | Trims a suffix (as well as leading underscore, if any) from a string. | |
| 
            StringTranslationTrait:: | 
                  protected | property | The string translation service. | 1 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Formats a string containing a count of items. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Returns the number of plurals supported by a given language. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Gets the string translation service. | |
| 
            StringTranslationTrait:: | 
                  public | function | Sets the string translation service to use. | 2 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Translates a string to the current language or to a given language. |