diff --git a/core/modules/migrate/migrate.api.php b/core/modules/migrate/migrate.api.php index ba11a16c8987f36935b18097f8cbe6e71923876b..aea0d77c476833387a81d6532b6a7bf11d0b5def 100644 --- a/core/modules/migrate/migrate.api.php +++ b/core/modules/migrate/migrate.api.php @@ -110,6 +110,29 @@ function hook_migrate_prepare_row(Row $row, MigrateSourceInterface $source, Migr } } +/** + * Allows altering the list of discovered migration plugins. + * + * Modules are able to alter specific migrations structures or even remove or + * append additional migrations to the discovery. For example, this + * implementation filters out Drupal 6 migrations from the discovered migration + * list. This is done by checking the migration tags. + * + * @param array[] $migrations + * An associative array of migrations keyed by migration ID. Each value is the + * migration array, obtained by decoding the migration YAML file and enriched + * with some meta information added during discovery phase, like migration + * 'class', 'provider' or '_discovered_file_path'. + * + * @ingroup migration + */ +function hook_migration_plugins_alter(array &$migrations) { + $migrations = array_filter($migrations, function (array $migration) { + $tags = isset($migration['migration_tags']) ? (array) $migration['migration_tags'] : []; + return !in_array('Drupal 6', $tags); + }); +} + /** * @} End of "addtogroup hooks". */