diff --git a/core/modules/migrate/src/Plugin/migrate/process/Extract.php b/core/modules/migrate/src/Plugin/migrate/process/Extract.php index 1ac88ca5bf92e37bb2249911a04085e5b721ad39..544c306c50c24a27dbcf34c6522c060cc7f34918 100644 --- a/core/modules/migrate/src/Plugin/migrate/process/Extract.php +++ b/core/modules/migrate/src/Plugin/migrate/process/Extract.php @@ -9,9 +9,52 @@ use Drupal\migrate\Row; /** - * This plugin extracts a value from an array. + * Extracts a value from an array. * - * @link https://www.drupal.org/node/2152731 Online handbook documentation for extract process plugin @endlink + * The extract process plugin is used to pull data from an input array, which + * may have multiple levels. One use case is extracting data from field arrays + * in previous versions of Drupal. For instance, in Drupal 7, a field array + * would be indexed first by language, then by delta, then finally a key such as + * 'value'. + * + * Available configuration keys: + * - source: The input value - must be an array. + * - index: The array of keys to access the value. + * - default: (optional) A default value to assign to the destination if the + * key does not exist. + * + * Examples: + * + * @code + * process: + * new_text_field: + * plugin: extract + * source: some_text_field + * index: + * - und + * - 0 + * - value + * @endcode + * + * The PHP equivalent of this would be: + * @code + * $destination['new_text_field'] = $source['some_text_field']['und'][0]['value']; + * @endcode + * If a default value is specified, it will be returned if the index does not + * exist in the input array. + * + * @code + * plugin: extract + * source: some_text_field + * default: 'Default title' + * index: + * - title + * @endcode + * + * If $source['some_text_field']['title'] doesn't exist, then the plugin will + * return "Default title". + * + * @see \Drupal\migrate\Plugin\MigrateProcessInterface * * @MigrateProcessPlugin( * id = "extract",