Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / modules / migrate / src / Plugin / migrate / process / Substr.php
index 1f852a9238b69460dab82157d9f4c7598904b6d2..4d49a3809b70884c454c075cf24b210fdcc69cf8 100644 (file)
@@ -12,19 +12,19 @@ use Drupal\Component\Utility\Unicode;
  * Returns a substring of the input value.
  *
  * The substr process plugin returns the portion of the input value specified by
- * the start and length parameters. This is a wrapper around the PHP substr()
- * function.
+ * the start and length parameters. This is a wrapper around
+ * \Drupal\Component\Utility\Unicode::substr().
  *
  * Available configuration keys:
  * - start: (optional) The returned string will start this many characters after
- *   the beginning of the string. Defaults to NULL.
+ *   the beginning of the string, defaults to 0.
  * - length: (optional) The maximum number of characters in the returned
- *   string. Defaults to NULL.
+ *   string, defaults to NULL.
  *
- * If start is NULL and length is an integer, the start position is the
+ * If start is 0 and length is an integer, the start position is the
  * beginning of the string. If start is an integer and length is NULL, the
  * substring starting from the start position until the end of the string will
- * be returned. If both start and length are NULL the entire string is returned.
+ * be returned. If start is 0 and length is NULL the entire string is returned.
  *
  * Example:
  *
@@ -33,19 +33,33 @@ use Drupal\Component\Utility\Unicode;
  *   new_text_field:
  *     plugin: substr
  *     source: some_text_field
- *       start: 6
- *       length: 10
+ *     start: 6
+ *     length: 10
  * @endcode
- *
  * If some_text_field was 'Marie SkÅ‚odowska Curie' then
  * $destination['new_text_field'] would be 'SkÅ‚odowska'.
  *
  * The PHP equivalent of this is:
- *
  * @code
  * $destination['new_text_field'] = substr($source['some_text_field'], 6, 10);
  * @endcode
  *
+ * The substr plugin requires that the source value is not empty. If empty
+ * values are expected, combine skip_on_empty process plugin to the pipeline:
+ * @code
+ * process:
+ *   new_text_field:
+ *    -
+ *      plugin: skip_on_empty
+ *      method: process
+ *      source: some_text_field
+ *    -
+ *      plugin: substr
+ *      source: some_text_field
+ *      start: 6
+ *      length: 10
+ * @endcode
+ *
  * @see \Drupal\migrate\Plugin\MigrateProcessInterface
  *
  * @MigrateProcessPlugin(