public function ProfileValues::getProcess in Drupal 8
Same name and namespace in other branches
- 9 core/modules/user/src/Plugin/migrate/ProfileValues.php \Drupal\user\Plugin\migrate\ProfileValues::getProcess()
Get the normalized process pipeline configuration describing the process plugins.
The process configuration is always normalized. All shorthand processing will be expanded into their full representations.
Return value
array The normalized configuration describing the process plugins.
Overrides Migration::getProcess
See also
https://www.drupal.org/node/2129651#get-shorthand
File
- core/
modules/ user/ src/ Plugin/ migrate/ ProfileValues.php, line 24
Class
- ProfileValues
- Plugin class for user migrations dealing with profile values.
Namespace
Drupal\user\Plugin\migrateCode
public function getProcess() {
if (!$this->init) {
$this->init = TRUE;
$definition['source'] = [
'plugin' => 'profile_field',
'ignore_map' => TRUE,
] + $this->source;
$definition['destination']['plugin'] = 'null';
$definition['idMap']['plugin'] = 'null';
try {
$this
->checkRequirements();
$profile_field_migration = $this->migrationPluginManager
->createStubMigration($definition);
$migrate_executable = new MigrateExecutable($profile_field_migration);
$source_plugin = $profile_field_migration
->getSourcePlugin();
$source_plugin
->checkRequirements();
foreach ($source_plugin as $row) {
$name = $row
->getSourceProperty('name');
$fid = $row
->getSourceProperty('fid');
// The user profile field name can be greater than 32 characters. Use
// the migrated profile field name in the process pipeline.
$configuration = [
'migration' => 'user_profile_field',
'source_ids' => $fid,
'no_stub' => TRUE,
];
$plugin = $this->processPluginManager
->createInstance('migration_lookup', $configuration, $profile_field_migration);
$new_value = $plugin
->transform($fid, $migrate_executable, $row, 'tmp');
if (isset($new_value[1])) {
// Set the destination to the migrated profile field name.
$this->process[$new_value[1]] = $name;
}
}
} catch (RequirementsException $e) {
// The checkRequirements() call will fail when the profile module does
// not exist on the source site, or if the required migrations have not
// yet run.
}
}
return parent::getProcess();
}