Skip to content
Snippets Groups Projects
Commit 6a59e99f authored by Mike Ryan's avatar Mike Ryan Committed by Mike Ryan
Browse files

Issue #2736911 by mikeryan: Provide convenience functions for creating entities from plugins

parent 96a714c4
No related branches found
No related tags found
No related merge requests found
......@@ -59,4 +59,30 @@ class Migration extends ConfigEntityBase implements MigrationInterface {
Cache::invalidateTags(['migration_plugins']);
}
/**
* Create a configuration entity from a core migration plugin's configuration.
*
* @param string $plugin_id
* ID of a migration plugin managed by MigrationPluginManager.
* @param string $new_plugin_id
* ID to use for the new configuration entity.
*
* @return \Drupal\migrate_plus\Entity\MigrationInterface
* A Migration configuration entity (not saved to persistent storage).
*/
public static function createEntityFromPlugin($plugin_id, $new_plugin_id) {
/** @var \Drupal\migrate\Plugin\MigrationPluginManagerInterface $plugin_manager */
$plugin_manager = \Drupal::service('plugin.manager.migration');
$migration_plugin = $plugin_manager->createInstance($plugin_id);
$entity_array['id'] = $new_plugin_id;
$entity_array['migration_tags'] = $migration_plugin->get('migration_tags');
$entity_array['label'] = $migration_plugin->label();
$entity_array['source'] = $migration_plugin->getSourceConfiguration();
$entity_array['destination'] = $migration_plugin->getDestinationConfiguration();
$entity_array['process'] = $migration_plugin->getProcess();
$entity_array['migration_dependencies'] = $migration_plugin->getMigrationDependencies();
$migration_entity = static::create($entity_array);
return $migration_entity;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment