class Callback
Same name and namespace in other branches
- 9 core/modules/migrate/src/Plugin/migrate/process/Callback.php \Drupal\migrate\Plugin\migrate\process\Callback
- 8.9.x core/modules/migrate/src/Plugin/migrate/process/Callback.php \Drupal\migrate\Plugin\migrate\process\Callback
- 10 core/modules/migrate/src/Plugin/migrate/process/Callback.php \Drupal\migrate\Plugin\migrate\process\Callback
Passes the source value to a callback.
The callback process plugin allows simple processing of the value, such as strtolower(). To pass more than one argument, pass an array as the source and set the unpack_source option.
Available configuration keys:
- callable: The name of the callable method.
- unpack_source: (optional) Whether to interpret the source as an array of arguments.
Examples:
process:
destination_field:
plugin: callback
callable: mb_strtolower
source: source_field
An example where the callable is a static method in a class:
process:
destination_field:
plugin: callback
callable:
- '\Drupal\Component\Utility\Unicode'
- ucfirst
source: source_field
An example where the callback accepts no arguments:
process:
time:
plugin: callback
callable: time
unpack_source: true
source: [ ]
An example where the callback accepts more than one argument:
source:
plugin: source_plugin_goes_here
constants:
slash: /
process:
field_link_url:
plugin: callback
callable: rtrim
unpack_source: true
source:
- url
- constants/slash
This will remove the trailing '/', if any, from a URL.
Attributes
#[MigrateProcess('callback')]
Hierarchy
- class \Drupal\Component\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait implements \Drupal\Component\Plugin\PluginBase
- class \Drupal\migrate\ProcessPluginBase extends \Drupal\migrate\Plugin\MigrateProcessInterface implements \Drupal\Core\Plugin\PluginBase
- class \Drupal\migrate\Plugin\migrate\process\Callback implements \Drupal\migrate\ProcessPluginBase
- class \Drupal\migrate\ProcessPluginBase extends \Drupal\migrate\Plugin\MigrateProcessInterface implements \Drupal\Core\Plugin\PluginBase
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait implements \Drupal\Component\Plugin\PluginBase
Expanded class hierarchy of Callback
See also
\Drupal\migrate\Plugin\MigrateProcessInterface
1 file declares its use of Callback
- CallbackTest.php in core/
modules/ migrate/ tests/ src/ Unit/ process/ CallbackTest.php
26 string references to 'Callback'
- BubbleableMetadataTest::providerTestMerge in core/
tests/ Drupal/ Tests/ Core/ Render/ BubbleableMetadataTest.php - Provides test data for testMerge().
- ConstraintManager::registerDefinitions in core/
lib/ Drupal/ Core/ Validation/ ConstraintManager.php - Callback for registering definitions for constraints shipped with Symfony.
- d6_action.yml in core/
modules/ system/ migrations/ d6_action.yml - core/modules/system/migrations/d6_action.yml
- d6_block.yml in core/
modules/ block/ migrations/ d6_block.yml - core/modules/block/migrations/d6_block.yml
- d6_custom_block_translation.yml in core/
modules/ content_translation/ migrations/ d6_custom_block_translation.yml - core/modules/content_translation/migrations/d6_custom_block_translation.yml
File
-
core/
modules/ migrate/ src/ Plugin/ migrate/ process/ Callback.php, line 77
Namespace
Drupal\migrate\Plugin\migrate\processView source
class Callback extends ProcessPluginBase {
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition) {
if (!isset($configuration['callable'])) {
throw new \InvalidArgumentException('The "callable" must be set.');
}
elseif (!is_callable($configuration['callable'])) {
throw new \InvalidArgumentException('The "callable" must be a valid function or method.');
}
parent::__construct($configuration, $plugin_id, $plugin_definition);
}
/**
* {@inheritdoc}
*/
public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
if (!empty($this->configuration['unpack_source'])) {
if (!is_array($value)) {
throw new MigrateException(sprintf("When 'unpack_source' is set, the source must be an array. Instead it was of type '%s'", gettype($value)));
}
return call_user_func($this->configuration['callable'], ...$value);
}
return call_user_func($this->configuration['callable'], $value);
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
Callback::transform | public | function | Performs the associated process. | Overrides ProcessPluginBase::transform | ||
Callback::__construct | public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | Overrides PluginBase::__construct | ||
DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | |||
DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | |||
DependencySerializationTrait::__sleep | public | function | 3 | |||
DependencySerializationTrait::__wakeup | public | function | 3 | |||
MessengerTrait::$messenger | protected | property | The messenger. | 25 | ||
MessengerTrait::messenger | public | function | Gets the messenger. | 25 | ||
MessengerTrait::setMessenger | public | function | Sets the messenger. | |||
PluginBase::$configuration | protected | property | Configuration information passed into the plugin. | 1 | ||
PluginBase::$pluginDefinition | protected | property | The plugin implementation definition. | 1 | ||
PluginBase::$pluginId | protected | property | The plugin ID. | |||
PluginBase::DERIVATIVE_SEPARATOR | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||||
PluginBase::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | Overrides DerivativeInspectionInterface::getBaseId | ||
PluginBase::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | Overrides DerivativeInspectionInterface::getDerivativeId | ||
PluginBase::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | 2 | |
PluginBase::getPluginId | public | function | Gets the plugin ID of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | ||
PluginBase::isConfigurable | Deprecated | public | function | Determines if the plugin is configurable. | ||
ProcessPluginBase::$stopPipeline | protected | property | Determines if processing of the pipeline is stopped. | |||
ProcessPluginBase::isPipelineStopped | public | function | Determines if the pipeline should stop processing. | Overrides MigrateProcessInterface::isPipelineStopped | ||
ProcessPluginBase::multiple | public | function | Indicates whether the returned value requires multiple handling. | Overrides MigrateProcessInterface::multiple | 3 | |
ProcessPluginBase::reset | public | function | Resets the internal data of a plugin. | Overrides MigrateProcessInterface::reset | ||
ProcessPluginBase::stopPipeline | protected | function | Stops pipeline processing after this plugin finishes. | |||
StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | ||
StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | |||
StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | |||
StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | |||
StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | ||
StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | 1 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.