EntityTestDefaultValue.php

Same filename 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.