migrate_plus.module in Migrate Plus 8
Same filename and directory in other branches
Provides enhancements for implementing and managing migrations.
File
migrate_plus.moduleView source
<?php
/**
* @file
* Provides enhancements for implementing and managing migrations.
*/
use Drupal\migrate\Entity\MigrationInterface;
use Drupal\migrate\Plugin\MigrateSourceInterface;
use Drupal\migrate\Row;
use Drupal\migrate_plus\Entity\MigrationGroup;
use Drupal\migrate_plus\Event\MigrateEvents;
use Drupal\migrate_plus\Event\MigratePrepareRowEvent;
/**
* Implements hook_ENTITY_TYPE_load().
*/
function migrate_plus_migration_load($migrations) {
/** @var MigrationInterface $migration */
foreach ($migrations as $migration) {
// If we are pointing to a valid group, merge its properties into ours.
$migration_group = $migration
->getThirdPartySetting('migrate_plus', 'migration_group');
if (empty($migration_group)) {
$migration_group = 'default';
}
$group = MigrationGroup::load($migration_group);
if (empty($group)) {
continue;
}
$shared_configuration = $group
->get('shared_configuration');
if (empty($shared_configuration)) {
continue;
}
foreach ($shared_configuration as $key => $group_value) {
$migration_value = $migration
->get($key);
// Where both the migration and the group provide arrays,
// replace recursively (so each key collision is resolved in favor
// of the migration).
if (is_array($migration_value) && is_array($group_value)) {
$merged_values = array_replace_recursive($group_value, $migration_value);
$migration
->set($key, $merged_values);
}
elseif (is_null($migration_value)) {
$migration
->set($key, $group_value);
}
// Otherwise, the existing migration value overrides the group
// value.
}
}
}
/**
* Implements hook_migrate_prepare_row().
*/
function migrate_plus_migrate_prepare_row(Row $row, MigrateSourceInterface $source, MigrationInterface $migration) {
\Drupal::service('event_dispatcher')
->dispatch(MigrateEvents::PREPARE_ROW, new MigratePrepareRowEvent($row, $source, $migration));
}
Functions
Name | Description |
---|---|
migrate_plus_migrate_prepare_row | Implements hook_migrate_prepare_row(). |
migrate_plus_migration_load | Implements hook_ENTITY_TYPE_load(). |