You are here

protected function FieldItemList::delegateMethod in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Field/FieldItemList.php \Drupal\Core\Field\FieldItemList::delegateMethod()
  2. 10 core/lib/Drupal/Core/Field/FieldItemList.php \Drupal\Core\Field\FieldItemList::delegateMethod()

Calls a method on each FieldItem.

Any argument passed will be forwarded to the invoked method.

Parameters

string $method: The name of the method to be invoked.

Return value

array An array of results keyed by delta.

4 calls to FieldItemList::delegateMethod()
FieldItemList::delete in core/lib/Drupal/Core/Field/FieldItemList.php
Defines custom delete behavior for field values.
FieldItemList::deleteRevision in core/lib/Drupal/Core/Field/FieldItemList.php
Defines custom revision delete behavior for field values.
FieldItemList::postSave in core/lib/Drupal/Core/Field/FieldItemList.php
Defines custom post-save behavior for field values.
FieldItemList::preSave in core/lib/Drupal/Core/Field/FieldItemList.php
Defines custom presave behavior for field values.

File

core/lib/Drupal/Core/Field/FieldItemList.php, line 227

Class

FieldItemList
Represents an entity field; that is, a list of field item objects.

Namespace

Drupal\Core\Field

Code

protected function delegateMethod($method) {
  $result = [];
  $args = array_slice(func_get_args(), 1);
  foreach ($this->list as $delta => $item) {

    // call_user_func_array() is way slower than a direct call so we avoid
    // using it if have no parameters.
    $result[$delta] = $args ? call_user_func_array([
      $item,
      $method,
    ], $args) : $item
      ->{$method}();
  }
  return $result;
}