/** * Creates a new field definition. * * @param string $type * The type of the field. * * @return static * A new field definition object. */ public static function create($type) { $field_definition = new static(array()); $field_definition->type = $type; $field_definition->itemDefinition = FieldItemDataDefinition::create($field_definition); // Create a definition for the items, and initialize it with the default // settings for the field type. // @todo Cleanup in https://drupal.org/node/2116341. $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); $default_settings = $field_type_manager->getDefaultSettings($type) + $field_type_manager->getDefaultInstanceSettings($type); $field_definition->itemDefinition->setSettings($default_settings); return $field_definition; }
/** * {@inheritdoc} */ public function getItemDefinition() { if (!isset($this->itemDefinition)) { $this->itemDefinition = FieldItemDataDefinition::create($this)->setSettings($this->getSettings()); } return $this->itemDefinition; }