MigrationPluginAlterer.php in Media Migration 8
File
modules/media_migration_tools/src/MigrationPluginAlterer.php
View source
<?php
namespace Drupal\media_migration_tools;
use Drupal\media_migration\MediaMigration;
class MigrationPluginAlterer {
public function alter(array &$migrations) {
$this
->switchIdMapPlugin($migrations);
$this
->addRequirementsKey($migrations);
}
protected function switchIdMapPlugin(array &$migrations) {
$file_to_media_migrations = array_filter($migrations, function (array $migration_definition) {
$migration_tags = $migration_definition['migration_tags'] ?? [];
return in_array(MediaMigration::MIGRATION_TAG_MAIN, $migration_tags, TRUE) && !empty($migration_definition['source']['destination_media_type_id']) && empty($migration_definition['idMap']);
});
foreach ($file_to_media_migrations as $migration_plugin_id => $file_to_media_migration_def) {
$migrations[$migration_plugin_id]['idMap'] = [
'plugin' => 'smart_sql',
];
}
}
protected function addRequirementsKey(array &$migrations) {
foreach ($migrations as $migration_plugin_id => $migration_definition) {
if (empty($migration_definition['migration_tags']) || !in_array(MediaMigration::MIGRATION_TAG_MAIN, $migration_definition['migration_tags'], TRUE) || empty($migration_definition['migration_dependencies']['required'])) {
continue;
}
$migrations[$migration_plugin_id]['requirements'] = $migration_definition['migration_dependencies']['required'];
}
}
}