Миграция, простой process плагин
migrate drupal8В прошлой статье мы рассмотрели миграцию пользователей с сохранением паролей. Однако строку пароля нам пришлось изменить перед тем, как она была использоана для миграции. Сделано это было в методе prepareRow источника миграции. Но это не единственный способ преобразования данных, порой правильнее организовать код, используя process плагины.
Конфигурация импорта.
migrate_plus.migration.foobar_user.yml
id: foobar_user
label: Migrate user
source:
plugin: foobar_user
target: migrate
process:
name: name
mail: mail
pass:
plugin: foobar_prefix
source: pass
prefix: 'F$'
status:
plugin: default_value
default_value: 1
destination:
plugin: entity:user
migration_dependencies: {}
Prefix.php
/**
* This plugin add prefix to the destination.
*
* @MigrateProcessPlugin(
* id = "foobar_prefix"
* )
*/
class Prefix extends ProcessPluginBase {
/**
* {@inheritdoc}
*/
public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
$prefix = $this->configuration['prefix'];
return $prefix . $value;
}
}