class AttributeDestination in Commerce Migrate 3.0.x
Same name and namespace in other branches
- 8.2 modules/csv_example/src/Plugin/migrate/process/AttributeDestination.php \Drupal\commerce_migrate_csv_example\Plugin\migrate\process\AttributeDestination
- 3.1.x modules/csv_example/src/Plugin/migrate/process/AttributeDestination.php \Drupal\commerce_migrate_csv_example\Plugin\migrate\process\AttributeDestination
Sets attributes on the destination.
The attribute name is constructed during the migration, it is prepended with 'attribute_' and the length checked. Since the name is not known beforehand the destination for the attribute values on the product variation is set by this process plugin.
The input is a array of values, in pairs. The first element is the array output from 'import_attribute', which supplies the verified name. The second element is the value of the attribute.
Example:
process:
anyname:
plugin: csv_example_attribute_destination
source:
- attribute1_name
- attribute1_value
- attribute2_name
- attribute2_value
If attribute1_name is 'color', attribute_1_value is 'green', attribute2_name is 'size' and attribute2_name is 'Med' then destination property 'color' is set to 'red' and destination property 'size' is set to 'Med'.
Plugin annotation
@MigrateProcessPlugin(
id = "csv_example_attribute_destination"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\migrate\ProcessPluginBase implements MigrateProcessInterface
- class \Drupal\commerce_migrate_csv_example\Plugin\migrate\process\AttributeDestination
- class \Drupal\migrate\ProcessPluginBase implements MigrateProcessInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of AttributeDestination
1 file declares its use of AttributeDestination
- AttributeDestinationTest.php in modules/
csv_example/ tests/ src/ Unit/ Plugin/ migrate/ process/ AttributeDestinationTest.php
File
- modules/
csv_example/ src/ Plugin/ migrate/ process/ AttributeDestination.php, line 46
Namespace
Drupal\commerce_migrate_csv_example\Plugin\migrate\processView source
class AttributeDestination extends ProcessPluginBase {
/**
* {@inheritdoc}
*/
public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
if (is_array($value)) {
$count = count($value);
if (!($count & 1)) {
for ($i = 0; $i < $count; $i = $i + 2) {
if (!empty($value[$i]) && !empty($value[$i + 1])) {
$field_name = 'attribute_' . $value[$i];
$field_name = substr($field_name, 0, 32);
$row
->setDestinationProperty($field_name, $value[$i + 1]);
}
}
}
else {
throw new MigrateException('There must be an even number of input values.');
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AttributeDestination:: |
public | function |
Performs the associated process. Overrides ProcessPluginBase:: |
|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
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 |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
2 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 98 |
ProcessPluginBase:: |
public | function |
Indicates whether the returned value requires multiple handling. Overrides MigrateProcessInterface:: |
3 |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
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. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |