Creates a new typed data object instance.
array $definition: The data definition array with the following array keys and values:
Further keys may be supported in certain usages, e.g. for further keys supported for entity field definitions see \Drupal\Core\Entity\StorageControllerInterface::getPropertyDefinitions().
mixed $value: (optional) The data value. If set, it has to match one of the supported data type format as documented for the data type classes.
string $name: (optional) If a property or list item is to be created, the name of the property or the delta of the list item.
mixed $parent: (optional) If a property or list item is to be created, the parent typed data object implementing either the ListInterface or the ComplexDataInterface.
\Drupal\Core\TypedData\TypedDataInterface The instantiated typed data object.
\Drupal\Core\TypedData\TypedDataManager::getPropertyInstance()
\Drupal\Core\TypedData\Type\Integer
\Drupal\Core\TypedData\Type\Float
\Drupal\Core\TypedData\Type\String
\Drupal\Core\TypedData\Type\Boolean
\Drupal\Core\TypedData\Type\Duration
\Drupal\Core\TypedData\Type\Date
\Drupal\Core\TypedData\Type\Uri
\Drupal\Core\TypedData\Type\Binary
\Drupal\Core\Entity\Field\EntityWrapper
public function create(array $definition, $value = NULL, $name = NULL, $parent = NULL) {
$wrapper = $this->factory
->createInstance($definition['type'], $definition, $name, $parent);
if (isset($value)) {
$wrapper
->setValue($value, FALSE);
}
return $wrapper;
}