class Callback

Same name and namespace in other branches
  1. 11.x core/modules/migrate/src/Plugin/migrate/process/Callback.php \Drupal\migrate\Plugin\migrate\process\Callback
  2. 10 core/modules/migrate/src/Plugin/migrate/process/Callback.php \Drupal\migrate\Plugin\migrate\process\Callback
  3. 9 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(). The callable takes the source value as the single mandatory argument. No additional arguments can be passed to the callback.

Available configuration keys:

  • callable: The name of the callable method.

Examples:


process:
  destination_field:
    plugin: callback
    callable: 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'
      - strtolower
    source: source_field

Plugin annotation


@MigrateProcessPlugin(
  id = "callback"
)

Hierarchy

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
21 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/action/migrations/d6_action.yml
core/modules/action/migrations/d6_action.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
d6_menu_links_translation.yml in core/modules/content_translation/migrations/d6_menu_links_translation.yml
core/modules/content_translation/migrations/d6_menu_links_translation.yml

... See full list

File

core/modules/migrate/src/Plugin/migrate/process/Callback.php, line 47

Namespace

Drupal\migrate\Plugin\migrate\process
View 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) {
    return call_user_func($this->configuration['callable'], $value);
  }

}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.