EntityTestDefaultValue.php

Same filename and directory in other branches
  1. 9 core/modules/system/tests/modules/entity_test/src/Entity/EntityTestDefaultValue.php
  2. 8.9.x core/modules/system/tests/modules/entity_test/src/Entity/EntityTestDefaultValue.php
  3. 10 core/modules/system/tests/modules/entity_test/src/Entity/EntityTestDefaultValue.php

Namespace

Drupal\entity_test\Entity

File

core/modules/system/tests/modules/entity_test/src/Entity/EntityTestDefaultValue.php

View source
<?php

declare (strict_types=1);
namespace Drupal\entity_test\Entity;

use Drupal\Core\Entity\Attribute\ContentEntityType;
use Drupal\Core\Entity\FieldableEntityInterface;
use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;

/**
 * Defines a test entity class for testing default values.
 */
class EntityTestDefaultValue extends EntityTest {
  
  /**
   * {@inheritdoc}
   */
  public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
    $fields = parent::baseFieldDefinitions($entity_type);
    $fields['description'] = BaseFieldDefinition::create('shape')->setLabel(t('Some custom description'))
      ->setDefaultValueCallback(static::class . '::descriptionDefaultValue');
    return $fields;
  }
  
  /**
   * Field default value callback.
   *
   * @param \Drupal\Core\Entity\FieldableEntityInterface $entity
   *   The entity being created.
   * @param \Drupal\Core\Field\FieldDefinitionInterface $definition
   *   The field definition.
   *
   * @return array
   *   An array of default values, in the same format as the $default_value
   *   property.
   *
   * @see \Drupal\field\Entity\FieldConfig::$default_value
   */
  public static function descriptionDefaultValue(FieldableEntityInterface $entity, FieldDefinitionInterface $definition) : array {
    // Include the field name and entity language in the generated values to
    // check that they are correctly passed.
    $string = $definition->getName() . '_' . $entity->language()
      ->getId();
    // Return a "default value" with multiple items.
    return [
      [
        'shape' => "shape:0:{$string}",
        'color' => "color:0:{$string}",
      ],
      [
        'shape' => "shape:1:{$string}",
        'color' => "color:1:{$string}",
      ],
    ];
  }

}

Classes

Title Deprecated Summary
EntityTestDefaultValue Defines a test entity class for testing default values.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.