migmag-1.0.x-dev/src/Utility/MigMagSourceUtility.php

src/Utility/MigMagSourceUtility.php
<?php

declare(strict_types=1);

namespace Drupal\migmag\Utility;

/**
 * Utility for migration source plugins.
 */
class MigMagSourceUtility {

  /**
   * Instantiates a migration source plugin from a plugin ID or configuration.
   *
   * This is a smarter alternative to MigrationDeriverTrait::getSourcePlugin,
   * which isn't able to accept plugin configuration, which means that you're
   * unable to instantiate the 'variable' source plugin in Drupal 8.9.x.
   *
   * @param string|array $source_plugin
   *   The source plugin ID, or a full source plugin configuration.
   *
   * @return \Drupal\migrate\Plugin\MigrateSourceInterface|\Drupal\migrate\Plugin\RequirementsInterface
   *   The fully initialized source plugin.
   */
  public static function getSourcePlugin($source_plugin) {
    $source_plugin_configuration = is_string($source_plugin)
      ? ['plugin' => $source_plugin, 'ignore_map' => TRUE]
      : ['ignore_map' => TRUE] + $source_plugin;
    $stub_migration_definition = [
      'source' => $source_plugin_configuration,
      'destination' => [
        'plugin' => 'null',
      ],
      'idMap' => [
        'plugin' => 'null',
      ],
    ];
    return \Drupal::service('plugin.manager.migration')
      ->createStubMigration($stub_migration_definition)
      ->getSourcePlugin();
  }

}

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

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