Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Callback.php

class Callback

Same name in this branch
  1. 11.1.x vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php \PHPUnit\Framework\Constraint\Callback
  2. 11.1.x vendor/symfony/validator/Constraints/Callback.php \Symfony\Component\Validator\Constraints\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.

Hierarchy

  • class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
    • class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
      • class \Drupal\migrate\ProcessPluginBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\migrate\Plugin\MigrateProcessInterface
        • class \Drupal\migrate\Plugin\migrate\process\Callback extends \Drupal\migrate\ProcessPluginBase

Expanded class hierarchy of Callback

See also

\Drupal\migrate\Plugin\MigrateProcessInterface

19 string references to 'Callback'
Callback::getDefaultOption in vendor/symfony/validator/Constraints/Callback.php
Returns the name of the default option.
ConstraintManager::registerDefinitions in core/lib/Drupal/Core/Validation/ConstraintManager.php
Callback for registering definitions for constraints shipped with Symfony.
CreateWidgetTypeCallbackSniff::process in vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/CreateWidgetTypeCallbackSniff.php
Processes this test, when one of its tokens is encountered.
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

... See full list

File

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

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) {
        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 Modifiers Object type Summary Overriden Title Overrides
Callback::transform public function Performs the associated process. Overrides ProcessPluginBase::transform
Callback::__construct public function
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 5
PluginInspectionInterface::getPluginId public function Gets the plugin ID of the plugin instance. 2
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.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal