function MigrateStub::doCreateStub
Same name in other branches
- 9 core/modules/migrate/src/MigrateStub.php \Drupal\migrate\MigrateStub::doCreateStub()
- 8.9.x core/modules/migrate/src/MigrateStub.php \Drupal\migrate\MigrateStub::doCreateStub()
- 10 core/modules/migrate/src/MigrateStub.php \Drupal\migrate\MigrateStub::doCreateStub()
Creates a stub.
Parameters
\Drupal\migrate\Plugin\MigrationInterface $migration: The migration to use to create the stub.
array $source_ids: The source ids to map to the stub.
array $default_values: (optional) An array of values to include in the stub.
Return value
array|bool An array of destination ids for the stub.
Throws
\Drupal\migrate\MigrateException
1 call to MigrateStub::doCreateStub()
- MigrateStub::createStub in core/
modules/ migrate/ src/ MigrateStub.php - Creates a stub.
File
-
core/
modules/ migrate/ src/ MigrateStub.php, line 106
Class
- MigrateStub
- Provides the migrate stubbing service.
Namespace
Drupal\migrateCode
protected function doCreateStub(MigrationInterface $migration, array $source_ids, array $default_values = []) {
$destination = $migration->getDestinationPlugin(TRUE);
$process = $migration->getProcess();
$id_map = $migration->getIdMap();
$migrate_executable = new MigrateExecutable($migration);
$row = new Row($source_ids + $migration->getSourceConfiguration(), $migration->getSourcePlugin()
->getIds(), TRUE);
$migrate_executable->processRow($row, $process);
foreach ($default_values as $key => $value) {
$row->setDestinationProperty($key, $value);
}
$destination_ids = [];
try {
$destination_ids = $destination->import($row);
} catch (\Exception $e) {
$id_map->saveMessage($row->getSourceIdValues(), $e->getMessage());
}
if ($destination_ids) {
$id_map->saveIdMapping($row, $destination_ids, MigrateIdMapInterface::STATUS_NEEDS_UPDATE);
return $destination_ids;
}
return FALSE;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.