You are here

public function FieldItemBase::__construct in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Field/FieldItemBase.php \Drupal\Core\Field\FieldItemBase::__construct()

Constructs a TypedData object given its definition and context.

@todo When \Drupal\Core\Config\TypedConfigManager has been fixed to use class-based definitions, type-hint $definition to DataDefinitionInterface. https://www.drupal.org/node/1928868

Parameters

\Drupal\Core\TypedData\DataDefinitionInterface $definition: The data definition.

string $name: (optional) The name of the created property, or NULL if it is the root of a typed data tree. Defaults to NULL.

\Drupal\Core\TypedData\TypedDataInterface $parent: (optional) The parent object of the data property, or NULL if it is the root of a typed data tree. Defaults to NULL.

Overrides TypedData::__construct

See also

\Drupal\Core\TypedData\TypedDataManager::create()

1 call to FieldItemBase::__construct()
FieldTestItem::__construct in core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/FieldTestItem.php
Constructs a TypedData object given its definition and context.
1 method overrides FieldItemBase::__construct()
FieldTestItem::__construct in core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/FieldTestItem.php
Constructs a TypedData object given its definition and context.

File

core/lib/Drupal/Core/Field/FieldItemBase.php, line 51
Contains \Drupal\Core\Field\FieldItemBase.

Class

FieldItemBase
An entity field item.

Namespace

Drupal\Core\Field

Code

public function __construct(DataDefinitionInterface $definition, $name = NULL, TypedDataInterface $parent = NULL) {
  parent::__construct($definition, $name, $parent);

  // Initialize computed properties by default, such that they get cloned
  // with the whole item.
  foreach ($this->definition
    ->getPropertyDefinitions() as $name => $definition) {
    if ($definition
      ->isComputed()) {
      $this->properties[$name] = \Drupal::typedDataManager()
        ->getPropertyInstance($this, $name);
    }
  }
}