abstract class FieldItemBase in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Field/FieldItemBase.php \Drupal\Core\Field\FieldItemBase
An entity field item.
Entity field items making use of this base class have to implement the static method propertyDefinitions().
Hierarchy
- class \Drupal\Core\TypedData\TypedData implements PluginInspectionInterface, TypedDataInterface uses StringTranslationTrait, TypedDataTrait- class \Drupal\Core\TypedData\Plugin\DataType\Map implements \Drupal\Core\TypedData\Plugin\DataType\IteratorAggregate, ComplexDataInterface- class \Drupal\Core\Field\FieldItemBase implements FieldItemInterface
 
 
- class \Drupal\Core\TypedData\Plugin\DataType\Map implements \Drupal\Core\TypedData\Plugin\DataType\IteratorAggregate, ComplexDataInterface
Expanded class hierarchy of FieldItemBase
See also
\Drupal\Core\Field\FieldItemInterface
Related topics
18 files declare their use of FieldItemBase
- BooleanItem.php in core/lib/ Drupal/ Core/ Field/ Plugin/ Field/ FieldType/ BooleanItem.php 
- Contains \Drupal\Core\Field\Plugin\Field\FieldType\BooleanItem.
- CommentItem.php in core/modules/ comment/ src/ Plugin/ Field/ FieldType/ CommentItem.php 
- Contains \Drupal\comment\Plugin\Field\FieldType\CommentItem.
- DateTimeItem.php in core/modules/ datetime/ src/ Plugin/ Field/ FieldType/ DateTimeItem.php 
- Contains \Drupal\datetime\Plugin\Field\FieldType\DateTimeItem.
- EmailItem.php in core/lib/ Drupal/ Core/ Field/ Plugin/ Field/ FieldType/ EmailItem.php 
- Contains \Drupal\Core\Field\Plugin\Field\FieldType\EmailItem.
- EntityReferenceItem.php in core/lib/ Drupal/ Core/ Field/ Plugin/ Field/ FieldType/ EntityReferenceItem.php 
- Contains \Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem.
File
- core/lib/ Drupal/ Core/ Field/ FieldItemBase.php, line 25 
- Contains \Drupal\Core\Field\FieldItemBase.
Namespace
Drupal\Core\FieldView source
abstract class FieldItemBase extends Map implements FieldItemInterface {
  /**
   * {@inheritdoc}
   */
  public static function defaultStorageSettings() {
    return array();
  }
  /**
   * {@inheritdoc}
   */
  public static function defaultFieldSettings() {
    return array();
  }
  /**
   * {@inheritdoc}
   */
  public static function mainPropertyName() {
    return 'value';
  }
  /**
   * {@inheritdoc}
   */
  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);
      }
    }
  }
  /**
   * {@inheritdoc}
   */
  public function getEntity() {
    return $this
      ->getParent()
      ->getEntity();
  }
  /**
   * {@inheritdoc}
   */
  public function getLangcode() {
    return $this->parent
      ->getLangcode();
  }
  /**
   * {@inheritdoc}
   */
  public function getFieldDefinition() {
    return $this->definition
      ->getFieldDefinition();
  }
  /**
   * Returns the array of field settings.
   *
   * @return array
   *   The array of settings.
   */
  protected function getSettings() {
    return $this
      ->getFieldDefinition()
      ->getSettings();
  }
  /**
   * Returns the value of a field setting.
   *
   * @param string $setting_name
   *   The setting name.
   *
   * @return mixed
   *   The setting value.
   */
  protected function getSetting($setting_name) {
    return $this
      ->getFieldDefinition()
      ->getSetting($setting_name);
  }
  /**
   * {@inheritdoc}
   */
  public function setValue($values, $notify = TRUE) {
    // Treat the values as property value of the first property, if no array is
    // given.
    if (isset($values) && !is_array($values)) {
      $keys = array_keys($this->definition
        ->getPropertyDefinitions());
      $values = array(
        $keys[0] => $values,
      );
    }
    parent::setValue($values, $notify);
  }
  /**
   * {@inheritdoc}
   *
   * Different to the parent Map class, we avoid creating property objects as
   * far as possible in order to optimize performance. Thus we just update
   * $this->values if no property object has been created yet.
   */
  protected function writePropertyValue($property_name, $value) {
    // For defined properties there is either a property object or a plain
    // value that needs to be updated.
    if (isset($this->properties[$property_name])) {
      $this->properties[$property_name]
        ->setValue($value, FALSE);
    }
    else {
      $this->values[$property_name] = $value;
    }
  }
  /**
   * {@inheritdoc}
   */
  public function __get($name) {
    // There is either a property object or a plain value - possibly for a
    // not-defined property. If we have a plain value, directly return it.
    if (isset($this->properties[$name])) {
      return $this->properties[$name]
        ->getValue();
    }
    elseif (isset($this->values[$name])) {
      return $this->values[$name];
    }
  }
  /**
   * {@inheritdoc}
   */
  public function __set($name, $value) {
    // Support setting values via property objects, but take care in as the
    // value of the 'entity' property is typed data also.
    if ($value instanceof TypedDataInterface && !$value instanceof EntityInterface) {
      $value = $value
        ->getValue();
    }
    $this
      ->set($name, $value);
  }
  /**
   * {@inheritdoc}
   */
  public function __isset($name) {
    if (isset($this->properties[$name])) {
      return $this->properties[$name]
        ->getValue() !== NULL;
    }
    return isset($this->values[$name]);
  }
  /**
   * {@inheritdoc}
   */
  public function __unset($name) {
    if ($this->definition
      ->getPropertyDefinition($name)) {
      $this
        ->set($name, NULL);
    }
    else {
      // Explicitly unset the property in $this->values if a non-defined
      // property is unset, such that its key is removed from $this->values.
      unset($this->values[$name]);
    }
  }
  /**
   * {@inheritdoc}
   */
  public function view($display_options = array()) {
    $view_builder = \Drupal::entityManager()
      ->getViewBuilder($this
      ->getEntity()
      ->getEntityTypeId());
    return $view_builder
      ->viewFieldItem($this, $display_options);
  }
  /**
   * {@inheritdoc}
   */
  public function preSave() {
  }
  /**
   * {@inheritdoc}
   */
  public function postSave($update) {
  }
  /**
   * {@inheritdoc}
   */
  public function delete() {
  }
  /**
   * {@inheritdoc}
   */
  public static function generateSampleValue(FieldDefinitionInterface $field_definition) {
  }
  /**
   * {@inheritdoc}
   */
  public function deleteRevision() {
  }
  /**
   * {@inheritdoc}
   */
  public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) {
    return array();
  }
  /**
   * {@inheritdoc}
   */
  public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
    return array();
  }
  /**
   * {@inheritdoc}
   */
  public static function storageSettingsToConfigData(array $settings) {
    return $settings;
  }
  /**
   * {@inheritdoc}
   */
  public static function storageSettingsFromConfigData(array $settings) {
    return $settings;
  }
  /**
   * {@inheritdoc}
   */
  public static function fieldSettingsToConfigData(array $settings) {
    return $settings;
  }
  /**
   * {@inheritdoc}
   */
  public static function fieldSettingsFromConfigData(array $settings) {
    return $settings;
  }
  /**
   * {@inheritdoc}
   */
  public static function calculateDependencies(FieldDefinitionInterface $field_definition) {
    return array();
  }
  /**
   * {@inheritdoc}
   */
  public static function calculateStorageDependencies(FieldStorageDefinitionInterface $field_definition) {
    return [];
  }
  /**
   * {@inheritdoc}
   */
  public static function onDependencyRemoval(FieldDefinitionInterface $field_definition, array $dependencies) {
    return FALSE;
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| FieldItemBase:: | public static | function | Calculates dependencies for field items. Overrides FieldItemInterface:: | 2 | 
| FieldItemBase:: | public static | function | Calculates dependencies for field items on the storage level. Overrides FieldItemInterface:: | 1 | 
| FieldItemBase:: | public static | function | Defines the field-level settings for this plugin. Overrides FieldItemInterface:: | 7 | 
| FieldItemBase:: | public static | function | Defines the storage-level settings for this plugin. Overrides FieldItemInterface:: | 10 | 
| FieldItemBase:: | public | function | Defines custom delete behavior for field values. Overrides FieldItemInterface:: | 2 | 
| FieldItemBase:: | public | function | Defines custom revision delete behavior for field values. Overrides FieldItemInterface:: | |
| FieldItemBase:: | public | function | Returns a form for the field-level settings. Overrides FieldItemInterface:: | 7 | 
| FieldItemBase:: | public static | function | Returns a settings array in the field type's canonical representation. Overrides FieldItemInterface:: | 1 | 
| FieldItemBase:: | public static | function | Returns a settings array that can be stored as a configuration value. Overrides FieldItemInterface:: | 1 | 
| FieldItemBase:: | public static | function | Generates placeholder field values. Overrides FieldItemInterface:: | 15 | 
| FieldItemBase:: | public | function | Gets the entity that field belongs to. Overrides FieldItemInterface:: | |
| FieldItemBase:: | public | function | Gets the field definition. Overrides FieldItemInterface:: | |
| FieldItemBase:: | public | function | Gets the langcode of the field values held in the object. Overrides FieldItemInterface:: | |
| FieldItemBase:: | protected | function | Returns the value of a field setting. | |
| FieldItemBase:: | protected | function | Returns the array of field settings. | |
| FieldItemBase:: | public static | function | Returns the name of the main property, if any. Overrides FieldItemInterface:: | 4 | 
| FieldItemBase:: | public static | function | Informs the plugin that a dependency of the field will be deleted. Overrides FieldItemInterface:: | 1 | 
| FieldItemBase:: | public | function | Defines custom post-save behavior for field values. Overrides FieldItemInterface:: | 2 | 
| FieldItemBase:: | public | function | Defines custom presave behavior for field values. Overrides FieldItemInterface:: | 6 | 
| FieldItemBase:: | public | function | Overrides \Drupal\Core\TypedData\TypedData::setValue(). Overrides Map:: | 4 | 
| FieldItemBase:: | public | function | Returns a form for the storage-level settings. Overrides FieldItemInterface:: | 8 | 
| FieldItemBase:: | public static | function | Returns a settings array in the field type's canonical representation. Overrides FieldItemInterface:: | 2 | 
| FieldItemBase:: | public static | function | Returns a settings array that can be stored as a configuration value. Overrides FieldItemInterface:: | 2 | 
| FieldItemBase:: | public | function | Returns a renderable array for a single field item. Overrides FieldItemInterface:: | |
| FieldItemBase:: | protected | function | Different to the parent Map class, we avoid creating property objects as
far as possible in order to optimize performance. Thus we just update
$this->values if no property object has been created yet. Overrides Map:: | |
| FieldItemBase:: | public | function | Constructs a TypedData object given its definition and context. Overrides TypedData:: | 1 | 
| FieldItemBase:: | public | function | Magic method: Gets a property value. Overrides FieldItemInterface:: | 1 | 
| FieldItemBase:: | public | function | Magic method: Determines whether a property is set. Overrides FieldItemInterface:: | |
| FieldItemBase:: | public | function | Magic method: Sets a property value. Overrides FieldItemInterface:: | 1 | 
| FieldItemBase:: | public | function | Magic method: Unsets a property. Overrides FieldItemInterface:: | |
| FieldItemInterface:: | public static | function | Defines field item properties. | 22 | 
| FieldItemInterface:: | public static | function | Returns the schema for the field. | 25 | 
| Map:: | protected | property | The data definition. Overrides TypedData:: | |
| Map:: | protected | property | The array of properties. | |
| Map:: | protected | property | An array of values for the contained properties. | |
| Map:: | public | function | Applies the default value. Overrides TypedData:: | 4 | 
| Map:: | public | function | Gets a property object. Overrides ComplexDataInterface:: | |
| Map:: | public | function | ||
| Map:: | public | function | Gets an array of property objects. Overrides ComplexDataInterface:: | |
| Map:: | public | function | Returns a string representation of the data. Overrides TypedData:: | |
| Map:: | public | function | Gets the data value. Overrides TypedData:: | 1 | 
| Map:: | public | function | Determines whether the data structure is empty. Overrides ComplexDataInterface:: | 13 | 
| Map:: | public | function | Overrides TraversableTypedDataInterface:: | 4 | 
| Map:: | public | function | Sets a property value. Overrides ComplexDataInterface:: | |
| Map:: | public | function | Returns an array of all property values. Overrides ComplexDataInterface:: | 1 | 
| Map:: | public | function | Magic method: Implements a deep clone. | |
| StringTranslationTrait:: | protected | property | The string translation service. | |
| StringTranslationTrait:: | protected | function | Formats a string containing a count of items. | |
| StringTranslationTrait:: | protected | function | Returns the number of plurals supported by a given language. | |
| StringTranslationTrait:: | protected | function | Gets the string translation service. | |
| StringTranslationTrait:: | public | function | Sets the string translation service to use. | 2 | 
| StringTranslationTrait:: | protected | function | Translates a string to the current language or to a given language. | |
| TypedData:: | protected | property | The property name. | |
| TypedData:: | protected | property | The parent typed data object. | |
| TypedData:: | public static | function | Constructs a TypedData object given its definition and context. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Gets a list of validation constraints. Overrides TypedDataInterface:: | 8 | 
| TypedData:: | public | function | Gets the data definition. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Returns the name of a property or item. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Returns the parent data structure; i.e. either complex data or a list. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | |
| TypedData:: | public | function | Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | |
| TypedData:: | public | function | Returns the property path of the data. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Returns the root of the typed data tree. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Sets the context of a property or item via a context aware parent. Overrides TypedDataInterface:: | |
| TypedData:: | public | function | Validates the currently set data value. Overrides TypedDataInterface:: | |
| TypedDataTrait:: | protected | property | The typed data manager used for creating the data types. | |
| TypedDataTrait:: | public | function | Gets the typed data manager. | 1 | 
| TypedDataTrait:: | public | function | Sets the typed data manager. | 1 | 
