class EmbeddedDataSource in Drupal 10
Same name and namespace in other branches
- 8 core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php \Drupal\migrate\Plugin\migrate\source\EmbeddedDataSource
- 9 core/modules/migrate/src/Plugin/migrate/source/EmbeddedDataSource.php \Drupal\migrate\Plugin\migrate\source\EmbeddedDataSource
Allows source data to be defined in the configuration of the source plugin.
The embedded_data source plugin is used to inject source data from the plugin configuration. One use case is when some small amount of fixed data is imported, so that it can be referenced by other migrations. Another use case is testing.
Available configuration keys:
- data_rows: The source data array. Each source row should be an associative array of values keyed by field names.
- ids: An associative array of fields uniquely identifying a source row. See \Drupal\migrate\Plugin\MigrateSourceInterface::getIds() for more information.
Example:
source:
plugin: embedded_data
data_rows:
-
channel_machine_name: music
channel_description: Music
-
channel_machine_name: movies
channel_description: Movies
ids:
channel_machine_name:
type: string
This example migrates a channel vocabulary specified in the source section.
For additional configuration keys, refer to the parent class:
Plugin annotation
@MigrateSource(
id = "embedded_data",
source_module = "migrate"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\migrate\Plugin\migrate\source\SourcePluginBase implements RollbackAwareInterface, MigrateSourceInterface
- class \Drupal\migrate\Plugin\migrate\source\EmbeddedDataSource
- class \Drupal\migrate\Plugin\migrate\source\SourcePluginBase implements RollbackAwareInterface, MigrateSourceInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of EmbeddedDataSource
See also
\Drupal\migrate\Plugin\migrate\source\SourcePluginBase
File
- core/
modules/ migrate/ src/ Plugin/ migrate/ source/ EmbeddedDataSource.php, line 49
Namespace
Drupal\migrate\Plugin\migrate\sourceView source
class EmbeddedDataSource extends SourcePluginBase {
/**
* Data obtained from the source plugin configuration.
*
* @var array[]
* Array of data rows, each one an array of values keyed by field names.
*/
protected $dataRows = [];
/**
* Description of the unique ID fields for this source.
*
* @var array[]
* Each array member is keyed by a field name, with a value that is an
* array with a single member with key 'type' and value a column type such
* as 'integer'.
*/
protected $ids = [];
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration) {
parent::__construct($configuration, $plugin_id, $plugin_definition, $migration);
$this->dataRows = $configuration['data_rows'];
$this->ids = $configuration['ids'];
}
/**
* {@inheritdoc}
*/
public function fields() {
if ($this
->count() > 0) {
$first_row = reset($this->dataRows);
$field_names = array_keys($first_row);
return array_combine($field_names, $field_names);
}
else {
return [];
}
}
/**
* {@inheritdoc}
*/
public function initializeIterator() {
return new \ArrayIterator($this->dataRows);
}
/**
* {@inheritdoc}
*/
public function __toString() {
return 'Embedded data';
}
/**
* {@inheritdoc}
*/
public function getIds() {
return $this->ids;
}
/**
* {@inheritdoc}
*/
#[\ReturnTypeWillChange]
public function count($refresh = FALSE) {
// We do not want this source plugin to have a cacheable count.
// @see \Drupal\migrate_cache_counts_test\Plugin\migrate\source\CacheableEmbeddedDataSource
return count($this->dataRows);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
EmbeddedDataSource:: |
protected | property | Data obtained from the source plugin configuration. | |
EmbeddedDataSource:: |
protected | property | Description of the unique ID fields for this source. | |
EmbeddedDataSource:: |
public | function |
Overrides SourcePluginBase:: |
|
EmbeddedDataSource:: |
public | function |
Returns available fields on the source. Overrides MigrateSourceInterface:: |
|
EmbeddedDataSource:: |
public | function |
Defines the source fields uniquely identifying a source row. Overrides MigrateSourceInterface:: |
|
EmbeddedDataSource:: |
public | function |
Initializes the iterator with the source data. Overrides SourcePluginBase:: |
|
EmbeddedDataSource:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides SourcePluginBase:: |
|
EmbeddedDataSource:: |
public | function |
Allows class to decide how it will react when it is treated like a string. Overrides MigrateSourceInterface:: |
|
MessengerTrait:: |
protected | property | The messenger. | 13 |
MessengerTrait:: |
public | function | Gets the messenger. | 13 |
MessengerTrait:: |
public | function | Sets the messenger. | |
MigrateSourceInterface:: |
constant | Indicates that the source is not countable. | ||
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function | ||
PluginBase:: |
public | function | ||
PluginBase:: |
public | function | 1 | |
PluginBase:: |
public | function | ||
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
SourcePluginBase:: |
protected | property | The backend cache. | |
SourcePluginBase:: |
protected | property | Whether this instance should cache the source count. | |
SourcePluginBase:: |
protected | property | Key to use for caching counts. | |
SourcePluginBase:: |
protected | property | The current row from the query. | |
SourcePluginBase:: |
protected | property | The primary key of the current row. | |
SourcePluginBase:: |
protected | property | Information on the property used as the high-water mark. | |
SourcePluginBase:: |
protected | property | The key-value storage for the high-water value. | |
SourcePluginBase:: |
protected | property | The migration ID map. | |
SourcePluginBase:: |
protected | property | The iterator to iterate over the source rows. | |
SourcePluginBase:: |
protected | property | Flags whether source plugin will read the map row and add to data row. | |
SourcePluginBase:: |
protected | property | The entity migration object. | |
SourcePluginBase:: |
protected | property | The module handler service. | |
SourcePluginBase:: |
protected | property | The high water mark at the beginning of the import operation. | |
SourcePluginBase:: |
protected | property | Whether this instance should not attempt to count the source. | |
SourcePluginBase:: |
protected | property | Flags whether to track changes to incoming data. | |
SourcePluginBase:: |
protected | function | Check if the incoming data is newer than what we've previously imported. | |
SourcePluginBase:: |
public | function | ||
SourcePluginBase:: |
protected | function | Gets the source count checking if the source is countable or using the iterator_count function. | |
SourcePluginBase:: |
protected | function | Position the iterator to the following row. | |
SourcePluginBase:: |
protected | function | Gets the cache object. | |
SourcePluginBase:: |
public | function | Gets the currentSourceIds data member. | |
SourcePluginBase:: |
protected | function | The current value of the high water mark. | |
SourcePluginBase:: |
protected | function | Get the name of the field used as the high watermark. | |
SourcePluginBase:: |
protected | function | Get information on the property used as the high watermark. | |
SourcePluginBase:: |
protected | function | Get the high water storage object. | |
SourcePluginBase:: |
protected | function | Returns the iterator that will yield the row arrays to be processed. | |
SourcePluginBase:: |
protected | function | Gets the module handler. | |
SourcePluginBase:: |
public | function |
Gets the source module providing the source data. Overrides MigrateSourceInterface:: |
|
SourcePluginBase:: |
public | function | ||
SourcePluginBase:: |
public | function | ||
SourcePluginBase:: |
public | function |
Performs post-rollback tasks. Overrides RollbackAwareInterface:: |
|
SourcePluginBase:: |
public | function |
Adds additional data to the row. Overrides MigrateSourceInterface:: |
|
SourcePluginBase:: |
public | function |
Performs pre-rollback tasks. Overrides RollbackAwareInterface:: |
|
SourcePluginBase:: |
public | function | ||
SourcePluginBase:: |
protected | function | Checks if the incoming row has changed since our last import. | |
SourcePluginBase:: |
protected | function | Save the new high water mark. | |
SourcePluginBase:: |
public | function | ||
StringTranslationTrait:: |
protected | property | The string translation service. | 3 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |