function EntityDataDefinition::create
Same name in other branches
- 8.9.x core/lib/Drupal/Core/Entity/TypedData/EntityDataDefinition.php \Drupal\Core\Entity\TypedData\EntityDataDefinition::create()
- 10 core/lib/Drupal/Core/Entity/TypedData/EntityDataDefinition.php \Drupal\Core\Entity\TypedData\EntityDataDefinition::create()
- 11.x core/lib/Drupal/Core/Entity/TypedData/EntityDataDefinition.php \Drupal\Core\Entity\TypedData\EntityDataDefinition::create()
Creates a new entity definition.
Parameters
string $entity_type_id: (optional) The ID of the entity type, or NULL if the entity type is unknown. Defaults to NULL.
string $bundle: (optional) The bundle of the entity type, or NULL if the bundle is unknown. Defaults to NULL.
Return value
static
Overrides DataDefinition::create
5 calls to EntityDataDefinition::create()
- EntityContextDefinition::getSampleValues in core/
lib/ Drupal/ Core/ Plugin/ Context/ EntityContextDefinition.php - Returns typed data objects representing this context definition.
- EntityDataDefinition::createFromDataType in core/
lib/ Drupal/ Core/ Entity/ TypedData/ EntityDataDefinition.php - Creates a new data definition object.
- EntityFieldTest::doTestIntrospection in core/
tests/ Drupal/ KernelTests/ Core/ Entity/ EntityFieldTest.php - Executes the introspection tests for the given entity type.
- EntityTypedDataDefinitionTest::testEntities in core/
tests/ Drupal/ KernelTests/ Core/ Entity/ EntityTypedDataDefinitionTest.php - Tests deriving metadata about entities.
- EntityTypedDataDefinitionTest::testEntityDefinitionIsInternal in core/
tests/ Drupal/ KernelTests/ Core/ Entity/ EntityTypedDataDefinitionTest.php - Tests that an entity annotation can mark the data definition as internal.
File
-
core/
lib/ Drupal/ Core/ Entity/ TypedData/ EntityDataDefinition.php, line 24
Class
- EntityDataDefinition
- A typed data definition class for describing entities.
Namespace
Drupal\Core\Entity\TypedDataCode
public static function create($entity_type_id = NULL, $bundle = NULL) {
// If the entity type is known, use the derived definition.
if (isset($entity_type_id)) {
$data_type = "entity:{$entity_type_id}";
// If a bundle was given, use the bundle-specific definition.
if ($bundle) {
$data_type .= ":{$bundle}";
}
// It's possible that the given entity type ID or bundle wasn't discovered
// by the TypedData plugin manager and/or weren't created by the
// EntityDeriver. In that case, this is a new definition and we'll just
// create the definition from defaults by using an empty array.
$values = \Drupal::typedDataManager()->getDefinition($data_type, FALSE);
$definition = new static(is_array($values) ? $values : []);
// Set the EntityType constraint using the given entity type ID.
$definition->setEntityTypeId($entity_type_id);
// If available, set the Bundle constraint.
if ($bundle) {
$definition->setBundles([
$bundle,
]);
}
return $definition;
}
return new static([]);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.