diff --git a/core/config/schema/core.data_types.schema.yml b/core/config/schema/core.data_types.schema.yml index 248a072..b71cf10 100644 --- a/core/config/schema/core.data_types.schema.yml +++ b/core/config/schema/core.data_types.schema.yml @@ -373,7 +373,7 @@ field_config_base: type: string label: 'Default value function' settings: - type: field.[%parent.field_type].instance_settings + type: field.[%parent.field_type].field_settings field_type: type: string label: 'Field type' @@ -404,7 +404,7 @@ core.date_format.*: # Schema for the String field type. -field.string.instance_settings: +field.string.field_settings: type: sequence label: 'String settings' sequence: @@ -435,7 +435,7 @@ field.boolean.settings: type: string label: 'Off label' -field.boolean.instance_settings: +field.boolean.field_settings: label: 'Boolean settings' type: mapping mapping: { } @@ -459,7 +459,7 @@ field.email.settings: sequence: - type: string -field.email.instance_settings: +field.email.field_settings: type: sequence label: 'Email settings' sequence: @@ -486,7 +486,7 @@ field.integer.settings: - type: string label: 'setting' -field.integer.instance_settings: +field.integer.field_settings: type: mapping label: 'Integer' mapping: @@ -525,7 +525,7 @@ field.decimal.settings: type: integer label: 'Scale' -field.decimal.instance_settings: +field.decimal.field_settings: type: mapping label: 'Decimal' mapping: @@ -560,7 +560,7 @@ field.float.settings: - type: string label: 'setting' -field.float.instance_settings: +field.float.field_settings: type: mapping label: 'Float' mapping: diff --git a/core/lib/Drupal/Core/Entity/ContentEntityDatabaseStorage.php b/core/lib/Drupal/Core/Entity/ContentEntityDatabaseStorage.php index f68a0da..a61c5bb 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityDatabaseStorage.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityDatabaseStorage.php @@ -1506,7 +1506,7 @@ public function onBundleRename($bundle, $bundle_new) { // configurable fields, so we use the specific API. // @todo Use the unified store of deleted field definitions instead in // https://www.drupal.org/node/2282119 - $field_definitions += entity_load_multiple_by_properties('field_instance_config', array('entity_type' => $this->entityTypeId, 'bundle' => $bundle, 'deleted' => TRUE, 'include_deleted' => TRUE)); + $field_definitions += entity_load_multiple_by_properties('field_config', array('entity_type' => $this->entityTypeId, 'bundle' => $bundle, 'deleted' => TRUE, 'include_deleted' => TRUE)); foreach ($field_definitions as $field_definition) { $storage_definition = $field_definition->getFieldStorageDefinition(); diff --git a/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php b/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php index a4849be..6d75946 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php @@ -10,8 +10,6 @@ use Drupal\Component\Utility\String; use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\FieldStorageDefinitionInterface; -use Drupal\Core\Cache\Cache; -use Drupal\field\FieldInstanceConfigInterface; use Symfony\Component\DependencyInjection\ContainerInterface; abstract class ContentEntityStorageBase extends EntityStorageBase implements FieldableEntityStorageInterface { @@ -137,7 +135,7 @@ public function purgeFieldData(FieldDefinitionInterface $field_definition, $batc * Reads values to be purged for a single field. * * This method is called during field data purge, on fields for which - * onFieldDelete() or onFieldInstanceDelete() has previously run. + * onFieldDelete() or onFieldDelete() has previously run. * * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition * The field definition. diff --git a/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php b/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php index 93e6528..eca5196 100644 --- a/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php +++ b/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php @@ -109,7 +109,7 @@ public function resetCache(array $entities = NULL); * @param array $display_options * Can be either: * - The name of a view mode. The field will be displayed according to the - * display settings specified for this view mode in the $instance + * display settings specified for this view mode in the $field * definition for the field in the entity's bundle. If no display settings * are found for the view mode, the settings for the 'default' view mode * will be used. diff --git a/core/lib/Drupal/Core/Field/BaseFieldDefinition.php b/core/lib/Drupal/Core/Field/BaseFieldDefinition.php index 20b31ad..be65768 100644 --- a/core/lib/Drupal/Core/Field/BaseFieldDefinition.php +++ b/core/lib/Drupal/Core/Field/BaseFieldDefinition.php @@ -62,7 +62,7 @@ public static function create($type) { // 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); + $default_settings = $field_type_manager->getDefaultSettings($type) + $field_type_manager->getDefaultFieldSettings($type); $field_definition->itemDefinition->setSettings($default_settings); return $field_definition; } diff --git a/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php b/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php index 75f679e..9fbe75c 100644 --- a/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php +++ b/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php @@ -155,7 +155,7 @@ protected function getBaseFieldDefinition() { */ public function preSave(EntityStorageInterface $storage) { // Set the default instance settings. - $this->settings += \Drupal::service('plugin.manager.field.field_type')->getDefaultInstanceSettings($this->getType()); + $this->settings += \Drupal::service('plugin.manager.field.field_type')->getDefaultFieldSettings($this->getType()); // Call the parent's presave method to perform validate and calculate // dependencies. diff --git a/core/lib/Drupal/Core/Field/FieldConfigStorageBase.php b/core/lib/Drupal/Core/Field/FieldConfigStorageBase.php index 00fbe35..4023599 100644 --- a/core/lib/Drupal/Core/Field/FieldConfigStorageBase.php +++ b/core/lib/Drupal/Core/Field/FieldConfigStorageBase.php @@ -28,7 +28,7 @@ protected function mapFromStorageRecords(array $records) { foreach ($records as &$record) { $class = $this->fieldTypeManager->getPluginClass($record['field_type']); - $record['settings'] = $class::instanceSettingsFromConfigData($record['settings']); + $record['settings'] = $class::fieldSettingsFromConfigData($record['settings']); } return parent::mapFromStorageRecords($records); } @@ -39,7 +39,7 @@ protected function mapFromStorageRecords(array $records) { protected function mapToStorageRecord(EntityInterface $entity) { $record = parent::mapToStorageRecord($entity); $class = $this->fieldTypeManager->getPluginClass($record['field_type']); - $record['settings'] = $class::instanceSettingsToConfigData($record['settings']); + $record['settings'] = $class::fieldSettingsFromConfigData($record['settings']); return $record; } diff --git a/core/lib/Drupal/Core/Field/FieldDefinitionInterface.php b/core/lib/Drupal/Core/Field/FieldDefinitionInterface.php index 2236d59..9d1e446 100644 --- a/core/lib/Drupal/Core/Field/FieldDefinitionInterface.php +++ b/core/lib/Drupal/Core/Field/FieldDefinitionInterface.php @@ -28,16 +28,16 @@ * information comes from. For example, field.module provides an implementation * based on two levels of configuration. It allows the site administrator to add * custom fields to any entity type and bundle via the "field_storage_config" - * and "field_instance_config" configuration entities. The former for storing + * and "field_config" configuration entities. The former for storing * configuration that is independent of which entity type and bundle the field * is added to, and the latter for storing configuration that is specific to the - * entity type and bundle. The class that implements "field_instance_config" + * entity type and bundle. The class that implements "field_config" * configuration entities also implements this interface, returning information * from either itself, or from the corresponding "field_storage_config" * configuration, as appropriate. * * However, entity base fields, such as $node->title, are not managed by - * field.module and its "field_storage_config"/"field_instance_config" + * field.module and its "field_storage_config"/"field_config" * configuration entities. Therefore, their definitions are provided by * different objects based on the class \Drupal\Core\Field\BaseFieldDefinition, * which implements this interface as well. diff --git a/core/lib/Drupal/Core/Field/FieldItemBase.php b/core/lib/Drupal/Core/Field/FieldItemBase.php index 715bbb7..3360ea2 100644 --- a/core/lib/Drupal/Core/Field/FieldItemBase.php +++ b/core/lib/Drupal/Core/Field/FieldItemBase.php @@ -35,7 +35,7 @@ public static function defaultSettings() { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array(); } @@ -252,7 +252,7 @@ public function settingsForm(array &$form, FormStateInterface $form_state, $has_ /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { return array(); } @@ -273,14 +273,14 @@ public static function settingsFromConfigData(array $settings) { /** * {@inheritdoc} */ - public static function instanceSettingsToConfigData(array $settings) { + public static function fieldSettingsToConfigData(array $settings) { return $settings; } /** * {@inheritdoc} */ - public static function instanceSettingsFromConfigData(array $settings) { + public static function fieldSettingsFromConfigData(array $settings) { return $settings; } diff --git a/core/lib/Drupal/Core/Field/FieldItemInterface.php b/core/lib/Drupal/Core/Field/FieldItemInterface.php index 8577a04..59bd0bd 100644 --- a/core/lib/Drupal/Core/Field/FieldItemInterface.php +++ b/core/lib/Drupal/Core/Field/FieldItemInterface.php @@ -55,7 +55,7 @@ public static function mainPropertyName(); * * This method is static because the field schema information is needed on * creation of the field. FieldItemInterface objects instantiated at that - * time are not reliable as field instance settings might be missing. + * time are not reliable as field settings might be missing. * * Computed fields having no schema should return an empty array. * @@ -217,7 +217,7 @@ public function delete(); public function deleteRevision(); /** - * Defines the field-level settings for this plugin. + * Defines the storage-level settings for this plugin. * * @return array * A list of default settings, keyed by the setting name. @@ -225,12 +225,12 @@ public function deleteRevision(); public static function defaultSettings(); /** - * Defines the instance-level settings for this plugin. + * Defines the field-level settings for this plugin. * * @return array * A list of default settings, keyed by the setting name. */ - public static function defaultInstanceSettings(); + public static function defaultFieldSettings(); /** * Returns a settings array that can be stored as a configuration value. @@ -286,12 +286,10 @@ public static function settingsFromConfigData(array $settings); /** * Returns a settings array that can be stored as a configuration value. * - * Same as static::settingsToConfigData(), but for the field's instance - * settings. + * Same as static::settingsToConfigData(), but for the field's settings. * * @param array $settings - * The field's instance settings in the field type's canonical - * representation. + * The field's settings in the field type's canonical representation. * * @return array * An array (either the unmodified $settings or a modified representation) @@ -299,38 +297,38 @@ public static function settingsFromConfigData(array $settings); * * @see \Drupal\Core\Field\FieldItemInterface::settingsToConfigData() */ - public static function instanceSettingsToConfigData(array $settings); + public static function fieldSettingsToConfigData(array $settings); /** * Returns a settings array in the field type's canonical representation. * - * This function does the inverse of static::instanceSettingsToConfigData(). - * It's called when loading a field's instance settings from a configuration + * This function does the inverse of static::fieldSettingsToConfigData(). + * It's called when loading a field's settings from a configuration * object. * * @param array $settings - * The field's instance settings, as it is stored within a configuration + * The field's settings, as it is stored within a configuration * object. * * @return array - * The instance settings, in the representation expected by the field type + * The field settings, in the representation expected by the field type * and code that interacts with it. * - * @see \Drupal\Core\Field\FieldItemInterface::instanceSettingsToConfigData() + * @see \Drupal\Core\Field\FieldItemInterface::fieldSettingsToConfigData() */ - public static function instanceSettingsFromConfigData(array $settings); + public static function fieldSettingsFromConfigData(array $settings); /** - * Returns a form for the field-level settings. + * Returns a form for the storage-level settings. * * Invoked from \Drupal\field_ui\Form\FieldStorageEditForm to allow - * administrators to configure field-level settings. + * administrators to configure storage-level settings. * - * Field storage might reject field definition changes that affect the field - * storage schema if the field already has data. When the $has_data parameter - * is TRUE, the form should not allow changing the settings that take part in - * the schema() method. It is recommended to set #access to FALSE on the - * corresponding elements. + * Field storage might reject settings changes that affect the field + * storage schema if the storage already has data. When the $has_data + * parameter is TRUE, the form should not allow changing the settings that + * take part in the schema() method. It is recommended to set #access to + * FALSE on the corresponding elements. * * @param array $form * The form where the settings form is being included in. @@ -345,10 +343,10 @@ public static function instanceSettingsFromConfigData(array $settings); public function settingsForm(array &$form, FormStateInterface $form_state, $has_data); /** - * Returns a form for the instance-level settings. + * Returns a form for the field-level settings. * - * Invoked from \Drupal\field_ui\Form\FieldInstanceEditForm to allow - * administrators to configure instance-level settings. + * Invoked from \Drupal\field_ui\Form\FieldEditForm to allow + * administrators to configure field-level settings. * * @param array $form * The form where the settings form is being included in. @@ -356,8 +354,8 @@ public function settingsForm(array &$form, FormStateInterface $form_state, $has_ * The form state of the (entire) configuration form. * * @return array - * The form definition for the field instance settings. + * The form definition for the field settings. */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state); + public function fieldSettingsForm(array $form, FormStateInterface $form_state); } diff --git a/core/lib/Drupal/Core/Field/FieldItemListInterface.php b/core/lib/Drupal/Core/Field/FieldItemListInterface.php index 402aa19..30d4180 100644 --- a/core/lib/Drupal/Core/Field/FieldItemListInterface.php +++ b/core/lib/Drupal/Core/Field/FieldItemListInterface.php @@ -184,7 +184,7 @@ public function view($display_options = array()); /** * Returns a form for the default value input. * - * Invoked from \Drupal\field_ui\Form\FieldInstanceEditForm to allow + * Invoked from \Drupal\field_ui\Form\FieldEditForm to allow * administrators to configure instance-level default value. * * @param array $form @@ -200,7 +200,7 @@ public function defaultValuesForm(array &$form, FormStateInterface $form_state); /** * Validates the submitted default value. * - * Invoked from \Drupal\field_ui\Form\FieldInstanceEditForm to allow + * Invoked from \Drupal\field_ui\Form\FieldEditForm to allow * administrators to configure instance-level default value. * * @param array $element @@ -215,7 +215,7 @@ public function defaultValuesFormValidate(array $element, array &$form, FormStat /** * Processes the submitted default value. * - * Invoked from \Drupal\field_ui\Form\FieldInstanceEditForm to allow + * Invoked from \Drupal\field_ui\Form\FieldEditForm to allow * administrators to configure instance-level default value. * * @param array $element diff --git a/core/lib/Drupal/Core/Field/FieldTypePluginManager.php b/core/lib/Drupal/Core/Field/FieldTypePluginManager.php index 6a5f39a..bd34699 100644 --- a/core/lib/Drupal/Core/Field/FieldTypePluginManager.php +++ b/core/lib/Drupal/Core/Field/FieldTypePluginManager.php @@ -61,11 +61,11 @@ public function getDefaultSettings($type) { /** * {@inheritdoc} */ - public function getDefaultInstanceSettings($type) { + public function getDefaultFieldSettings($type) { $plugin_definition = $this->getDefinition($type, FALSE); if (!empty($plugin_definition['class'])) { $plugin_class = DefaultFactory::getPluginClass($type, $plugin_definition); - return $plugin_class::defaultInstanceSettings(); + return $plugin_class::defaultFieldSettings(); } return array(); } diff --git a/core/lib/Drupal/Core/Field/FieldTypePluginManagerInterface.php b/core/lib/Drupal/Core/Field/FieldTypePluginManagerInterface.php index cf47637..bcbc108 100644 --- a/core/lib/Drupal/Core/Field/FieldTypePluginManagerInterface.php +++ b/core/lib/Drupal/Core/Field/FieldTypePluginManagerInterface.php @@ -17,24 +17,24 @@ interface FieldTypePluginManagerInterface extends PluginManagerInterface { /** - * Returns the default instance-level settings for a field type. - * - * @param string $type - * A field type name. - * - * @return array - * The instance's default settings, as provided by the plugin definition, or - * an empty array if type or settings are undefined. - */ - public function getDefaultInstanceSettings($type); - - /** * Returns the default field-level settings for a field type. * * @param string $type * A field type name. * * @return array + * The field's default settings, as provided by the plugin definition, or + * an empty array if type or settings are undefined. + */ + public function getDefaultFieldSettings($type); + + /** + * Returns the default storage-level settings for a field type. + * + * @param string $type + * A field type name. + * + * @return array * The type's default settings, as provided by the plugin definition, or an * empty array if type or settings are undefined. */ diff --git a/core/lib/Drupal/Core/Field/FormatterInterface.php b/core/lib/Drupal/Core/Field/FormatterInterface.php index 08c12d2..b809172 100644 --- a/core/lib/Drupal/Core/Field/FormatterInterface.php +++ b/core/lib/Drupal/Core/Field/FormatterInterface.php @@ -19,7 +19,7 @@ /** * Returns a form to configure settings for the formatter. * - * Invoked from \Drupal\field_ui\Form\FieldInstanceEditForm to allow + * Invoked from \Drupal\field_ui\Form\FieldEditForm to allow * administrators to configure the formatter. The field_ui module takes care * of handling submitted form values. * diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php index 5233910..a8091a7 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php @@ -47,10 +47,10 @@ public static function defaultSettings() { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array( 'handler' => 'default', - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php index 2d3fa30..9af1b8a 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php @@ -35,7 +35,7 @@ public static function defaultSettings() { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array( 'min' => '', 'max' => '', @@ -44,7 +44,7 @@ public static function defaultInstanceSettings() { // Valid size property values include: 'tiny', 'small', 'medium', 'normal' // and 'big'. 'size' => 'normal', - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); } /** diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php index 28846bb..45dbab1 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php @@ -18,19 +18,19 @@ /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array( 'min' => '', 'max' => '', 'prefix' => '', 'suffix' => '', - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); } /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { $element = array(); $settings = $this->getSettings(); diff --git a/core/lib/Drupal/Core/Field/WidgetInterface.php b/core/lib/Drupal/Core/Field/WidgetInterface.php index 6dc5608..a4d0fe8 100644 --- a/core/lib/Drupal/Core/Field/WidgetInterface.php +++ b/core/lib/Drupal/Core/Field/WidgetInterface.php @@ -25,7 +25,7 @@ /** * Returns a form to configure settings for the widget. * - * Invoked from \Drupal\field_ui\Form\FieldInstanceEditForm to allow + * Invoked from \Drupal\field_ui\Form\FieldEditForm to allow * administrators to configure the widget. The field_ui module takes care of * handling submitted form values. * diff --git a/core/modules/block_content/block_content.module b/core/modules/block_content/block_content.module index dadcf4b..188eee7 100644 --- a/core/modules/block_content/block_content.module +++ b/core/modules/block_content/block_content.module @@ -6,7 +6,7 @@ */ use Drupal\Core\Routing\RouteMatchInterface; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; /** @@ -73,12 +73,12 @@ function block_content_entity_type_alter(array &$entity_types) { * (optional) The label for the body instance. Defaults to 'Body' * * @return array() - * Body field instance. + * Body field. */ function block_content_add_body_field($block_type_id, $label = 'Body') { // Add or remove the body field, as needed. $field_storage = FieldStorageConfig::loadByName('block_content', 'body'); - $instance = FieldInstanceConfig::loadByName('block_content', $block_type_id, 'body'); + $field = FieldConfig::loadByName('block_content', $block_type_id, 'body'); if (empty($field_storage)) { $field_storage = entity_create('field_storage_config', array( 'name' => 'body', @@ -87,14 +87,14 @@ function block_content_add_body_field($block_type_id, $label = 'Body') { )); $field_storage->save(); } - if (empty($instance)) { - $instance = entity_create('field_instance_config', array( + if (empty($field)) { + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $block_type_id, 'label' => $label, 'settings' => array('display_summary' => FALSE), )); - $instance->save(); + $field->save(); // Assign widget settings for the 'default' form mode. entity_get_form_display('block_content', $block_type_id, 'default') @@ -112,5 +112,5 @@ function block_content_add_body_field($block_type_id, $label = 'Body') { ->save(); } - return $instance; + return $field; } diff --git a/core/modules/block_content/src/Tests/BlockContentFieldTest.php b/core/modules/block_content/src/Tests/BlockContentFieldTest.php index 2b8023c..7fd93d3 100644 --- a/core/modules/block_content/src/Tests/BlockContentFieldTest.php +++ b/core/modules/block_content/src/Tests/BlockContentFieldTest.php @@ -31,11 +31,11 @@ class BlockContentFieldTest extends BlockContentTestBase { protected $fieldStorage; /** - * The created instance. + * The created field. * - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; /** * The block type. @@ -61,14 +61,14 @@ public function testBlockFields() { 'cardinality' => 2, )); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => 'link', 'settings' => array( 'title' => DRUPAL_OPTIONAL, ), )); - $this->instance->save(); + $this->field->save(); entity_get_form_display('block_content', 'link', 'default') ->setComponent($this->fieldStorage->getName(), array( 'type' => 'link_default', diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module index 54bfefa..9abfba0 100644 --- a/core/modules/comment/comment.module +++ b/core/modules/comment/comment.module @@ -26,7 +26,7 @@ use Drupal\Core\Render\Element; use Drupal\Core\Url; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; use Drupal\field\FieldStorageConfigInterface; use Drupal\file\FileInterface; use Drupal\user\EntityOwnerInterface; @@ -133,16 +133,16 @@ function comment_theme() { } /** - * Implements hook_ENTITY_TYPE_create() for 'field_instance_config'. + * Implements hook_ENTITY_TYPE_create() for 'field_config'. */ -function comment_field_instance_config_create(FieldInstanceConfigInterface $instance) { - if ($instance->getType() == 'comment' && !$instance->isSyncing()) { +function comment_field_config_create(FieldConfigInterface $field) { + if ($field->getType() == 'comment' && !$field->isSyncing()) { // Assign default values for the field instance. - if (!isset($instance->default_value)) { - $instance->default_value = array(); + if (!isset($field->default_value)) { + $field->default_value = array(); } - $instance->default_value += array(array()); - $instance->default_value[0] += array( + $field->default_value += array(array()); + $field->default_value[0] += array( 'status' => CommentItemInterface::OPEN, 'cid' => 0, 'last_comment_timestamp' => 0, @@ -154,10 +154,10 @@ function comment_field_instance_config_create(FieldInstanceConfigInterface $inst } /** - * Implements hook_ENTITY_TYPE_update() for 'field_instance_config'. + * Implements hook_ENTITY_TYPE_update() for 'field_config'. */ -function comment_field_instance_config_update(FieldInstanceConfigInterface $instance) { - if ($instance->getType() == 'comment') { +function comment_field_config_update(FieldConfigInterface $field) { + if ($field->getType() == 'comment') { // Comment field settings also affects the rendering of *comment* entities, // not only the *commented* entities. \Drupal::entityManager()->getViewBuilder('comment')->resetCache(); @@ -178,14 +178,14 @@ function comment_field_storage_config_insert(FieldStorageConfigInterface $field_ } /** - * Implements hook_ENTITY_TYPE_delete() for 'field_instance_config'. + * Implements hook_ENTITY_TYPE_delete() for 'field_config'. */ -function comment_field_instance_config_delete(FieldInstanceConfigInterface $instance) { - if ($instance->getType() == 'comment') { +function comment_field_config_delete(FieldConfigInterface $field) { + if ($field->getType() == 'comment') { // Delete all comments that used by the entity bundle. $entity_query = \Drupal::entityQuery('comment'); - $entity_query->condition('entity_type', $instance->getEntityTypeId()); - $entity_query->condition('field_name', $instance->getName()); + $entity_query->condition('entity_type', $field->getEntityTypeId()); + $entity_query->condition('field_name', $field->getName()); $cids = $entity_query->execute(); entity_delete_multiple('comment', $cids); } diff --git a/core/modules/comment/config/schema/comment.schema.yml b/core/modules/comment/config/schema/comment.schema.yml index 4d482c1..8bc1256 100644 --- a/core/modules/comment/config/schema/comment.schema.yml +++ b/core/modules/comment/config/schema/comment.schema.yml @@ -93,7 +93,7 @@ field.comment.value: type: integer label: 'Count' -field.comment.instance_settings: +field.comment.field_settings: type: mapping label: 'Comment settings' mapping: diff --git a/core/modules/comment/src/CommentManager.php b/core/modules/comment/src/CommentManager.php index 5c76abb..fc7a9c0 100644 --- a/core/modules/comment/src/CommentManager.php +++ b/core/modules/comment/src/CommentManager.php @@ -20,7 +20,7 @@ use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\StringTranslation\TranslationInterface; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Comment manager contains common functions to manage comment fields. @@ -157,7 +157,7 @@ public function addDefaultField($entity_type, $bundle, $field_name = 'comment', } // Make sure the instance doesn't already exist. if (!array_key_exists($field_name, $this->entityManager->getFieldDefinitions($entity_type, $bundle))) { - $instance = $this->entityManager->getStorage('field_instance_config')->create(array( + $field = $this->entityManager->getStorage('field_config')->create(array( 'label' => 'Comments', 'description' => '', 'field_name' => $field_name, @@ -174,7 +174,7 @@ public function addDefaultField($entity_type, $bundle, $field_name = 'comment', ), ), )); - $instance->save(); + $field->save(); // Assign widget settings for the 'default' form mode. entity_get_form_display($entity_type, $bundle, 'default') @@ -227,9 +227,9 @@ public function addBodyField($comment_type_id) { )); $field_storage->save(); } - if (!FieldInstanceConfig::loadByName('comment', $comment_type_id, 'comment_body')) { + if (!FieldConfig::loadByName('comment', $comment_type_id, 'comment_body')) { // Attaches the body field by default. - $field_instance = $this->entityManager->getStorage('field_instance_config')->create(array( + $field_instance = $this->entityManager->getStorage('field_config')->create(array( 'field_name' => 'comment_body', 'label' => 'Comment', 'entity_type' => 'comment', diff --git a/core/modules/comment/src/CommentStorage.php b/core/modules/comment/src/CommentStorage.php index 9639d59..36ae10a 100644 --- a/core/modules/comment/src/CommentStorage.php +++ b/core/modules/comment/src/CommentStorage.php @@ -132,14 +132,14 @@ public function getDisplayOrdinal(CommentInterface $comment, $comment_mode, $div * {@inheritdoc} */ public function getNewCommentPageNumber($total_comments, $new_comments, ContentEntityInterface $entity, $field_name = 'comment') { - $instance = $entity->getFieldDefinition($field_name); - $comments_per_page = $instance->getSetting('per_page'); + $field = $entity->getFieldDefinition($field_name); + $comments_per_page = $field->getSetting('per_page'); if ($total_comments <= $comments_per_page) { // Only one page of comments. $count = 0; } - elseif ($instance->getSetting('default_mode') == CommentManagerInterface::COMMENT_MODE_FLAT) { + elseif ($field->getSetting('default_mode') == CommentManagerInterface::COMMENT_MODE_FLAT) { // Flat comments. $count = $total_comments - $new_comments; } diff --git a/core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php b/core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php index b54564a..2aa0509 100644 --- a/core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php +++ b/core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php @@ -40,14 +40,14 @@ public static function defaultSettings() { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array( 'default_mode' => CommentManagerInterface::COMMENT_MODE_THREADED, 'per_page' => 50, 'form_location' => CommentItemInterface::FORM_BELOW, 'anonymous' => COMMENT_ANONYMOUS_MAYNOT_CONTACT, 'preview' => DRUPAL_OPTIONAL, - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); } /** @@ -99,7 +99,7 @@ public static function schema(FieldStorageDefinitionInterface $field_definition) /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { $element = array(); $settings = $this->getSettings(); diff --git a/core/modules/comment/src/Tests/CommentFieldsTest.php b/core/modules/comment/src/Tests/CommentFieldsTest.php index 393bfd7..df65e26 100644 --- a/core/modules/comment/src/Tests/CommentFieldsTest.php +++ b/core/modules/comment/src/Tests/CommentFieldsTest.php @@ -9,7 +9,7 @@ use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Tests fields on comments. @@ -35,10 +35,10 @@ function testCommentDefaultFields() { $this->container->get('comment.manager')->addDefaultField('node', 'test_node_type'); // Check that the 'comment_body' field is present on the comment bundle. - $instance = FieldInstanceConfig::loadByName('comment', 'comment', 'comment_body'); - $this->assertTrue(!empty($instance), 'The comment_body field is added when a comment bundle is created'); + $field = FieldConfig::loadByName('comment', 'comment', 'comment_body'); + $this->assertTrue(!empty($field), 'The comment_body field is added when a comment bundle is created'); - $instance->delete(); + $field->delete(); // Check that the 'comment_body' field is deleted. $field_storage = FieldStorageConfig::loadByName('comment', 'comment_body'); @@ -53,13 +53,13 @@ function testCommentDefaultFields() { // new comment bundle. $field_storage = FieldStorageConfig::loadByName('comment', 'comment_body'); $this->assertTrue($field_storage, 'The comment_body field exists'); - $instance = FieldInstanceConfig::loadByName('comment', 'comment', 'comment_body'); - $this->assertTrue(isset($instance), format_string('The comment_body field is present for comments on type @type', array('@type' => $type_name))); + $field = FieldConfig::loadByName('comment', 'comment', 'comment_body'); + $this->assertTrue(isset($field), format_string('The comment_body field is present for comments on type @type', array('@type' => $type_name))); // Test adding a field that defaults to CommentItemInterface::CLOSED. $this->container->get('comment.manager')->addDefaultField('node', 'test_node_type', 'who_likes_ponies', CommentItemInterface::CLOSED, 'who_likes_ponies'); - $field_storage = entity_load('field_instance_config', 'node.test_node_type.who_likes_ponies'); - $this->assertEqual($field_storage->default_value[0]['status'], CommentItemInterface::CLOSED); + $field = entity_load('field_config', 'node.test_node_type.who_likes_ponies'); + $this->assertEqual($field->default_value[0]['status'], CommentItemInterface::CLOSED); } /** @@ -120,7 +120,7 @@ function testCommentInstallAfterContentModule() { function testCommentFormat() { // Disable text processing for comments. $this->drupalLogin($this->admin_user); - $edit = array('instance[settings][text_processing]' => 0); + $edit = array('field[settings][text_processing]' => 0); $this->drupalPostForm('admin/structure/comment/manage/comment/fields/comment.comment.comment_body', $edit, t('Save settings')); // Change formatter settings. diff --git a/core/modules/comment/src/Tests/CommentNodeChangesTest.php b/core/modules/comment/src/Tests/CommentNodeChangesTest.php index f208786..35666f8 100644 --- a/core/modules/comment/src/Tests/CommentNodeChangesTest.php +++ b/core/modules/comment/src/Tests/CommentNodeChangesTest.php @@ -28,10 +28,10 @@ function testNodeDeletion() { // Make sure the comment field and all its instances are deleted when node // type is deleted. $this->assertNotNull(entity_load('field_storage_config', 'node.comment'), 'Comment field exists'); - $this->assertNotNull(entity_load('field_instance_config', 'node.article.comment'), 'Comment instance exists'); + $this->assertNotNull(entity_load('field_config', 'node.article.comment'), 'Comment instance exists'); // Delete the node type. entity_delete_multiple('node_type', array($this->node->bundle())); $this->assertNull(entity_load('field_storage_config', 'node.comment'), 'Comment field deleted'); - $this->assertNull(entity_load('field_instance_config', 'node.article.comment'), 'Comment instance deleted'); + $this->assertNull(entity_load('field_config', 'node.article.comment'), 'Comment instance deleted'); } } diff --git a/core/modules/comment/src/Tests/CommentNonNodeTest.php b/core/modules/comment/src/Tests/CommentNonNodeTest.php index 85f0554..8f61ea0 100644 --- a/core/modules/comment/src/Tests/CommentNonNodeTest.php +++ b/core/modules/comment/src/Tests/CommentNonNodeTest.php @@ -10,7 +10,7 @@ use Drupal\comment\CommentInterface; use Drupal\comment\Entity\CommentType; use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\simpletest\WebTestBase; use Drupal\Core\Entity\EntityInterface; @@ -94,8 +94,8 @@ function postComment(EntityInterface $entity, $comment, $subject = '', $contact $edit = array(); $edit['comment_body[0][value]'] = $comment; - $instance = FieldInstanceConfig::loadByName('entity_test', 'entity_test', 'comment'); - $preview_mode = $instance->getSetting('preview'); + $field = FieldConfig::loadByName('entity_test', 'entity_test', 'comment'); + $preview_mode = $field->getSetting('preview'); // Must get the page before we test for fields. if ($entity !== NULL) { diff --git a/core/modules/comment/src/Tests/CommentTestBase.php b/core/modules/comment/src/Tests/CommentTestBase.php index 05f139d..458f6f1 100644 --- a/core/modules/comment/src/Tests/CommentTestBase.php +++ b/core/modules/comment/src/Tests/CommentTestBase.php @@ -10,8 +10,8 @@ use Drupal\comment\Entity\CommentType; use Drupal\comment\Entity\Comment; use Drupal\comment\CommentInterface; +use Drupal\field\Entity\FieldConfig; use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface; -use Drupal\field\Entity\FieldInstanceConfig; use Drupal\simpletest\WebTestBase; /** @@ -109,12 +109,12 @@ public function postComment($entity, $comment, $subject = '', $contact = NULL, $ $edit['comment_body[0][value]'] = $comment; if ($entity !== NULL) { - $instance = FieldInstanceConfig::loadByName('node', $entity->bundle(), $field_name); + $field = FieldConfig::loadByName('node', $entity->bundle(), $field_name); } else { - $instance = FieldInstanceConfig::loadByName('node', 'article', $field_name); + $field = FieldConfig::loadByName('node', 'article', $field_name); } - $preview_mode = $instance->settings['preview']; + $preview_mode = $field->settings['preview']; // Must get the page before we test for fields. if ($entity !== NULL) { @@ -309,9 +309,9 @@ public function setCommentsPerPage($number, $field_name = 'comment') { * Defaults to 'comment'. */ public function setCommentSettings($name, $value, $message, $field_name = 'comment') { - $instance = FieldInstanceConfig::loadByName('node', 'article', $field_name); - $instance->settings[$name] = $value; - $instance->save(); + $field = FieldConfig::loadByName('node', 'article', $field_name); + $field->settings[$name] = $value; + $field->save(); // Display status message. $this->pass($message); } diff --git a/core/modules/comment/src/Tests/CommentTypeTest.php b/core/modules/comment/src/Tests/CommentTypeTest.php index 87fb38b..75883f6 100644 --- a/core/modules/comment/src/Tests/CommentTypeTest.php +++ b/core/modules/comment/src/Tests/CommentTypeTest.php @@ -10,7 +10,7 @@ use Drupal\comment\Entity\CommentType; use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\node\Entity\Node; /** @@ -95,8 +95,8 @@ public function testCommentTypeCreation() { public function testCommentTypeEditing() { $this->drupalLogin($this->adminUser); - $instance = FieldInstanceConfig::loadByName('comment', 'comment', 'comment_body'); - $this->assertEqual($instance->getLabel(), 'Comment', 'Comment body field was found.'); + $field = FieldConfig::loadByName('comment', 'comment', 'comment_body'); + $this->assertEqual($field->getLabel(), 'Comment', 'Comment body field was found.'); // Change the comment type name. $this->drupalGet('admin/structure/comment'); diff --git a/core/modules/comment/src/Tests/CommentValidationTest.php b/core/modules/comment/src/Tests/CommentValidationTest.php index 891e9ab..994893c 100644 --- a/core/modules/comment/src/Tests/CommentValidationTest.php +++ b/core/modules/comment/src/Tests/CommentValidationTest.php @@ -62,7 +62,7 @@ public function testValidation() { ))->save(); // Add comment field instance to page content. - $this->entityManager->getStorage('field_instance_config')->create(array( + $this->entityManager->getStorage('field_config')->create(array( 'field_name' => 'comment', 'entity_type' => 'node', 'bundle' => 'page', diff --git a/core/modules/config/src/Tests/ConfigExportImportUITest.php b/core/modules/config/src/Tests/ConfigExportImportUITest.php index 6d1ad7c..ab1a545 100644 --- a/core/modules/config/src/Tests/ConfigExportImportUITest.php +++ b/core/modules/config/src/Tests/ConfigExportImportUITest.php @@ -70,7 +70,7 @@ public function testExportImport() { 'type' => 'text', )); $this->fieldStorage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => $this->content_type->type, ))->save(); @@ -96,10 +96,10 @@ public function testExportImport() { $this->assertEqual(\Drupal::config('system.site')->get('slogan'), $this->originalSlogan); // Delete the custom field. - $field_instances = entity_load_multiple('field_instance_config'); - foreach ($field_instances as $field_instance) { - if ($field_instance->field_name == $this->fieldName) { - $field_instance->delete(); + $fields = entity_load_multiple('field_config'); + foreach ($fields as $field) { + if ($field->field_name == $this->fieldName) { + $field->delete(); } } $field_storages = entity_load_multiple('field_storage_config'); diff --git a/core/modules/config_translation/config_translation.api.php b/core/modules/config_translation/config_translation.api.php index 27c89b1..9f7abfc 100644 --- a/core/modules/config_translation/config_translation.api.php +++ b/core/modules/config_translation/config_translation.api.php @@ -36,13 +36,13 @@ function hook_config_translation_info(&$info) { $route_provider = \Drupal::service('router.route_provider'); // If field UI is not enabled, the base routes of the type - // "field_ui.instance_edit_$entity_type" are not defined. + // "field_ui.field_edit_$entity_type" are not defined. if (\Drupal::moduleHandler()->moduleExists('field_ui')) { // Add fields entity mappers to all fieldable entity types defined. foreach ($entity_manager->getDefinitions() as $entity_type_id => $entity_type) { $base_route = NULL; try { - $base_route = $route_provider->getRouteByName('field_ui.instance_edit_' . $entity_type_id); + $base_route = $route_provider->getRouteByName('field_ui.field_edit_' . $entity_type_id); } catch (RouteNotFoundException $e) { // Ignore non-existent routes. @@ -51,10 +51,10 @@ function hook_config_translation_info(&$info) { // Make sure entity type is fieldable and has a base route. if ($entity_type->isFieldable() && !empty($base_route)) { $info[$entity_type_id . '_fields'] = array( - 'base_route_name' => 'field_ui.instance_edit_' . $entity_type_id, - 'entity_type' => 'field_instance_config', + 'base_route_name' => 'field_ui.field_edit_' . $entity_type_id, + 'entity_type' => 'field_config', 'title' => t('!label field'), - 'class' => '\Drupal\config_translation\ConfigFieldInstanceMapper', + 'class' => '\Drupal\config_translation\ConfigFieldMapper', 'base_entity_type' => $entity_type_id, 'weight' => 10, ); diff --git a/core/modules/config_translation/config_translation.module b/core/modules/config_translation/config_translation.module index 43aa754..9741ef5 100644 --- a/core/modules/config_translation/config_translation.module +++ b/core/modules/config_translation/config_translation.module @@ -92,9 +92,9 @@ function config_translation_entity_type_alter(array &$entity_types) { if ($entity_type_id == 'block') { $class = 'Drupal\config_translation\Controller\ConfigTranslationBlockListBuilder'; } - elseif ($entity_type_id == 'field_instance_config') { - $class = 'Drupal\config_translation\Controller\ConfigTranslationFieldInstanceListBuilder'; - // Will be filled in dynamically, see \Drupal\field\Entity\FieldInstanceConfig::linkTemplates(). + elseif ($entity_type_id == 'field_config') { + $class = 'Drupal\config_translation\Controller\ConfigTranslationFieldListBuilder'; + // Will be filled in dynamically, see \Drupal\field\Entity\FieldConfig::linkTemplates(). $entity_type->setLinkTemplate('drupal:config-translation-overview', 'config_translation.item.overview.'); } else { @@ -117,17 +117,17 @@ function config_translation_config_translation_info(&$info) { $route_provider = \Drupal::service('router.route_provider'); // If field UI is not enabled, the base routes of the type - // "field_ui.instance_edit_$entity_type" are not defined. + // "field_ui.field_edit_$entity_type" are not defined. if (\Drupal::moduleHandler()->moduleExists('field_ui')) { // Add fields entity mappers to all fieldable entity types defined. foreach ($entity_manager->getDefinitions() as $entity_type_id => $entity_type) { $base_route = NULL; try { - $base_route = $route_provider->getRouteByName('field_ui.instance_edit_' . $entity_type_id); + $base_route = $route_provider->getRouteByName('field_ui.field_edit_' . $entity_type_id); } catch (RouteNotFoundException $e) { if ($collection = \Drupal::service('router.builder')->getCollectionDuringRebuild()) { - $base_route = $collection->get('field_ui.instance_edit_' . $entity_type_id); + $base_route = $collection->get('field_ui.field_edit_' . $entity_type_id); } // Ignore non-existent routes. } @@ -135,10 +135,10 @@ function config_translation_config_translation_info(&$info) { // Make sure entity type is fieldable and has a base route. if ($entity_type->isFieldable() && !empty($base_route)) { $info[$entity_type_id . '_fields'] = array( - 'base_route_name' => 'field_ui.instance_edit_' . $entity_type_id, - 'entity_type' => 'field_instance_config', + 'base_route_name' => 'field_ui.field_edit_' . $entity_type_id, + 'entity_type' => 'field_config', 'title' => '!label field', - 'class' => '\Drupal\config_translation\ConfigFieldInstanceMapper', + 'class' => '\Drupal\config_translation\ConfigFieldMapper', 'base_entity_type' => $entity_type_id, 'weight' => 10, ); diff --git a/core/modules/config_translation/src/ConfigFieldInstanceMapper.php b/core/modules/config_translation/src/ConfigFieldMapper.php similarity index 82% rename from core/modules/config_translation/src/ConfigFieldInstanceMapper.php rename to core/modules/config_translation/src/ConfigFieldMapper.php index 5eb2cfe..e028831 100644 --- a/core/modules/config_translation/src/ConfigFieldInstanceMapper.php +++ b/core/modules/config_translation/src/ConfigFieldMapper.php @@ -2,13 +2,13 @@ /** * @file - * Contains \Drupal\config_translation\ConfigFieldInstanceMapper. + * Contains \Drupal\config_translation\ConfigFieldMapper. */ namespace Drupal\config_translation; /** - * Configuration mapper for field instances. + * Configuration mapper for fields. * * On top of plugin definition values on ConfigEntityMapper, the plugin * definition for field instance mappers are required to contain the following @@ -16,12 +16,12 @@ * - base_entity_type: The name of the entity type the field instances are * attached to. */ -class ConfigFieldInstanceMapper extends ConfigEntityMapper { +class ConfigFieldMapper extends ConfigEntityMapper { /** * Loaded entity instance to help produce the translation interface. * - * @var \Drupal\field\FieldInstanceConfigInterface + * @var \Drupal\field\FieldConfigInterface */ protected $entity; diff --git a/core/modules/config_translation/src/Controller/ConfigTranslationFieldInstanceListBuilder.php b/core/modules/config_translation/src/Controller/ConfigTranslationFieldListBuilder.php similarity index 94% rename from core/modules/config_translation/src/Controller/ConfigTranslationFieldInstanceListBuilder.php rename to core/modules/config_translation/src/Controller/ConfigTranslationFieldListBuilder.php index ef3b50f..7721615 100644 --- a/core/modules/config_translation/src/Controller/ConfigTranslationFieldInstanceListBuilder.php +++ b/core/modules/config_translation/src/Controller/ConfigTranslationFieldListBuilder.php @@ -2,7 +2,7 @@ /** * @file - * Contains \Drupal\config_translation\Controller\ConfigTranslationFieldInstanceListBuilder. + * Contains \Drupal\config_translation\Controller\ConfigTranslationFieldListBuilder. */ namespace Drupal\config_translation\Controller; @@ -18,7 +18,7 @@ /** * Defines the config translation list builder for field instance entities. */ -class ConfigTranslationFieldInstanceListBuilder extends ConfigTranslationEntityListBuilder { +class ConfigTranslationFieldListBuilder extends ConfigTranslationEntityListBuilder { /** * The name of the entity type the field instances are attached to. @@ -61,7 +61,7 @@ public static function createInstance(ContainerInterface $container, EntityTypeI } /** - * Constructs a new ConfigTranslationFieldInstanceListBuilder object. + * Constructs a new ConfigTranslationFieldListBuilder object. * * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type * The entity type definition. @@ -91,7 +91,7 @@ public function setMapperDefinition($mapper_definition) { public function load() { // It is not possible to use the standard load method, because this needs // all field instance entities only for the given baseEntityType. - $ids = \Drupal::entityQuery('field_instance_config') + $ids = \Drupal::entityQuery('field_config') ->condition('id', $this->baseEntityType . '.', 'STARTS_WITH') ->execute(); return $this->storage->loadMultiple($ids); diff --git a/core/modules/contact/src/Tests/Views/ContactFieldsTest.php b/core/modules/contact/src/Tests/Views/ContactFieldsTest.php index 63c7d1a..25107dc 100644 --- a/core/modules/contact/src/Tests/Views/ContactFieldsTest.php +++ b/core/modules/contact/src/Tests/Views/ContactFieldsTest.php @@ -46,7 +46,7 @@ protected function setUp() { 'label' => 'Test contact form', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $this->field_storage, 'bundle' => 'contact_message', ))->save(); diff --git a/core/modules/content_translation/content_translation.admin.inc b/core/modules/content_translation/content_translation.admin.inc index 36ac92e..3c5b2c1 100644 --- a/core/modules/content_translation/content_translation.admin.inc +++ b/core/modules/content_translation/content_translation.admin.inc @@ -11,7 +11,7 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Render\Element; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; /** * Returns a form element to configure field synchronization. @@ -110,7 +110,7 @@ function _content_translation_form_language_content_settings_form_alter(array &$ // Display the column translatability configuration widget. // @todo Remove this special casing when arbitrary settings can be // stored for any field. See https://drupal.org/node/2224761. - if ($definition instanceof FieldInstanceConfigInterface) { + if ($definition instanceof FieldConfigInterface) { $column_element = content_translation_field_sync_widget($definition); if ($column_element) { $form['settings'][$entity_type_id][$bundle]['columns'][$field_name] = $column_element; diff --git a/core/modules/content_translation/content_translation.install b/core/modules/content_translation/content_translation.install index 06a355b..a154bf1 100644 --- a/core/modules/content_translation/content_translation.install +++ b/core/modules/content_translation/content_translation.install @@ -95,7 +95,7 @@ function content_translation_install() { ->set('settings.translation_sync', FALSE) ->save(); } - $config_names = \Drupal::configFactory()->listAll('field.instance.'); + $config_names = \Drupal::configFactory()->listAll('field.field.'); foreach ($config_names as $name) { \Drupal::config($name) ->set('settings.translation_sync', FALSE) @@ -129,7 +129,7 @@ function content_translation_uninstall() { ->clear('settings.translation_sync') ->save(); } - $config_names = \Drupal::configFactory()->listAll('field.instance.'); + $config_names = \Drupal::configFactory()->listAll('field.field.'); foreach ($config_names as $name) { \Drupal::config($name) ->clear('settings.translation_sync') diff --git a/core/modules/content_translation/content_translation.module b/core/modules/content_translation/content_translation.module index 5c86c4e..d8904e9 100644 --- a/core/modules/content_translation/content_translation.module +++ b/core/modules/content_translation/content_translation.module @@ -8,10 +8,12 @@ use Drupal\Core\Entity\ContentEntityInterface; use Drupal\Core\Entity\EntityFormInterface; use Drupal\Core\Entity\EntityInterface; +use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Routing\RouteMatchInterface; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; +use Drupal\field\FieldConfigInterface; use Drupal\node\NodeInterface; /** @@ -600,19 +602,19 @@ function content_translation_entity_extra_field_info() { } /** - * Implements hook_form_FORM_ID_alter() for 'field_ui_instance_edit_form'. + * Implements hook_form_FORM_ID_alter() for 'field_ui_field_edit_form'. */ -function content_translation_form_field_ui_field_instance_edit_form_alter(array &$form, FormStateInterface $form_state) { - $instance = $form_state['instance']; - $bundle_is_translatable = content_translation_enabled($instance->entity_type, $instance->bundle); +function content_translation_form_field_ui_field_edit_form_alter(array &$form, FormStateInterface $form_state) { + $field = $form_state['field']; + $bundle_is_translatable = content_translation_enabled($field->entity_type, $field->bundle); - $form['instance']['translatable'] = array( + $form['field']['translatable'] = array( '#type' => 'checkbox', '#title' => t('Users may translate this field.'), - '#default_value' => $instance->isTranslatable(), + '#default_value' => $field->isTranslatable(), '#weight' => -1, '#disabled' => !$bundle_is_translatable, - '#access' => $instance->getFieldStorageDefinition()->isTranslatable(), + '#access' => $field->getFieldStorageDefinition()->isTranslatable(), ); // Provide helpful pointers for administrators. @@ -620,17 +622,17 @@ function content_translation_form_field_ui_field_instance_edit_form_alter(array $toggle_url = url('admin/config/regional/content-language', array( 'query' => drupal_get_destination(), )); - $form['instance']['translatable']['#description'] = t('To configure translation for this field, enable language support for this type.', array( + $form['field']['translatable']['#description'] = t('To configure translation for this field, enable language support for this type.', array( '@language-settings-url' => $toggle_url, )); } - if ($instance->isTranslatable()) { + if ($field->isTranslatable()) { module_load_include('inc', 'content_translation', 'content_translation.admin'); - $element = content_translation_field_sync_widget($instance); + $element = content_translation_field_sync_widget($field); if ($element) { - $form['instance']['settings']['translation_sync'] = $element; - $form['instance']['settings']['translation_sync']['#weight'] = -10; + $form['field']['settings']['translation_sync'] = $element; + $form['field']['settings']['translation_sync']['#weight'] = -10; } } } @@ -646,7 +648,7 @@ function content_translation_entity_presave(EntityInterface $entity) { } // Synchronization can be enabled per instance. // @todo Replace with own storage in https://drupal.org/node/2224761 - if ($entity->getEntityTypeId() === 'field_instance_config') { + if ($entity->getEntityTypeId() === 'field_config') { $entity->settings += array('translation_sync' => FALSE); } if ($entity instanceof ContentEntityInterface && $entity->isTranslatable()) { @@ -800,16 +802,16 @@ function content_translation_save_settings($settings) { // Save translation_sync settings. if (!empty($bundle_settings['columns'])) { foreach ($bundle_settings['columns'] as $field_name => $column_settings) { - $instance = FieldInstanceConfig::loadByName($entity_type, $bundle, $field_name); - if ($instance->isTranslatable()) { - $instance->settings['translation_sync'] = $column_settings; + $field = FieldConfig::loadByName($entity_type, $bundle, $field_name); + if ($field->isTranslatable()) { + $field->settings['translation_sync'] = $column_settings; } // If the field does not have translatable enabled we need to reset // the sync settings to their defaults. else { - unset($instance->settings['translation_sync']); + unset($field->settings['translation_sync']); } - $instance->save(); + $field->save(); } } } diff --git a/core/modules/content_translation/src/Tests/ContentTranslationContextualLinksTest.php b/core/modules/content_translation/src/Tests/ContentTranslationContextualLinksTest.php index 9033d83..ccdb4dc 100644 --- a/core/modules/content_translation/src/Tests/ContentTranslationContextualLinksTest.php +++ b/core/modules/content_translation/src/Tests/ContentTranslationContextualLinksTest.php @@ -86,7 +86,7 @@ protected function setUp() { 'cardinality' => 1, 'translatable' => TRUE, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'node', 'field_name' => 'field_test_text', 'bundle' => $this->bundle, diff --git a/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php b/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php index ea641cc..a65c01d 100644 --- a/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php +++ b/core/modules/content_translation/src/Tests/ContentTranslationSettingsTest.php @@ -10,7 +10,7 @@ use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface; use Drupal\Core\Field\Entity\BaseFieldOverride; use Drupal\Core\Language\Language; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\simpletest\WebTestBase; /** @@ -30,7 +30,7 @@ class ContentTranslationSettingsTest extends WebTestBase { protected function setUp() { parent::setUp(); - // Set up two content types to test field instances shared between different + // Set up two content types to test fields shared between different // bundles. $this->drupalCreateContentType(array('type' => 'article')); $this->drupalCreateContentType(array('type' => 'page')); @@ -163,20 +163,20 @@ function testSettingsUI() { // Test that configurable field translatability is correctly switched. $edit = array('settings[node][article][fields][body]' => $translatable); $this->assertSettings('node', 'article', TRUE, $edit); - $instance = FieldInstanceConfig::loadByName('node', 'article', 'body'); + $field = FieldConfig::loadByName('node', 'article', 'body'); $definitions = \Drupal::entityManager()->getFieldDefinitions('node', 'article'); $this->assertEqual($definitions['body']->isTranslatable(), $translatable, 'Field translatability correctly switched.'); - $this->assertEqual($instance->isTranslatable(), $definitions['body']->isTranslatable(), 'Configurable field translatability correctly switched.'); + $this->assertEqual($field->isTranslatable(), $definitions['body']->isTranslatable(), 'Configurable field translatability correctly switched.'); // Test that also the Field UI form behaves correctly. $translatable = !$translatable; - $edit = array('instance[translatable]' => $translatable); + $edit = array('field[translatable]' => $translatable); $this->drupalPostForm('admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings')); \Drupal::entityManager()->clearCachedFieldDefinitions(); - $instance = FieldInstanceConfig::loadByName('node', 'article', 'body'); + $field = FieldConfig::loadByName('node', 'article', 'body'); $definitions = \Drupal::entityManager()->getFieldDefinitions('node', 'article'); $this->assertEqual($definitions['body']->isTranslatable(), $translatable, 'Field translatability correctly switched.'); - $this->assertEqual($instance->isTranslatable(), $definitions['body']->isTranslatable(), 'Configurable field translatability correctly switched.'); + $this->assertEqual($field->isTranslatable(), $definitions['body']->isTranslatable(), 'Configurable field translatability correctly switched.'); } } @@ -221,34 +221,34 @@ protected function assertSettings($entity_type, $bundle, $enabled, $edit) { } /** - * Tests that field instance setting depends on bundle translatability. + * Tests that field setting depends on bundle translatability. */ function testFieldTranslatableSettingsUI() { // At least one field needs to be translatable to enable article for // translation. Create an extra field to be used for this purpose. - $field = array( + $field_storage = array( 'name' => 'article_text', 'entity_type' => 'node', 'type' => 'text', ); - entity_create('field_storage_config', $field)->save(); - $instance = array( + entity_create('field_storage_config', $field_storage)->save(); + $field = array( 'field_name' => 'article_text', 'entity_type' => 'node', 'bundle' => 'article', ); - entity_create('field_instance_config', $instance)->save(); + entity_create('field_config', $field)->save(); - // Tests that field instance doesn't have translatable setting if bundle - // is not translatable. + // Tests that field doesn't have translatable setting if bundle is not + // translatable. $path = 'admin/structure/types/manage/article/fields/node.article.body'; $this->drupalGet($path); $this->assertText('To configure translation for this field, enable language support for this type.', 'No translatable setting for field.'); // Tests that field instance has translatable setting if bundle is - // translatable. Note: this field instance is not translatable when - // enable bundle translatability. + // translatable. Note: this field is not translatable when enable bundle + // translatability. $edit = array( 'entity_types[node]' => TRUE, 'settings[node][article][settings][language][language_show]' => TRUE, diff --git a/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php b/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php index 98b9540..3f5ad3c 100644 --- a/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php +++ b/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php @@ -57,7 +57,7 @@ protected function setupTestFields() { 'translatable' => TRUE, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => $this->entityTypeId, 'field_name' => $this->fieldName, 'bundle' => $this->entityTypeId, @@ -87,11 +87,11 @@ function testImageFieldSync() { // Check that the alt and title fields are enabled for the image field. $this->drupalLogin($this->editor); $this->drupalGet('entity_test_mul/structure/' . $this->entityTypeId . '/fields/' . $this->entityTypeId . '.' . $this->entityTypeId . '.' . $this->fieldName); - $this->assertFieldChecked('edit-instance-settings-translation-sync-alt'); - $this->assertFieldChecked('edit-instance-settings-translation-sync-title'); + $this->assertFieldChecked('edit-field-settings-translation-sync-alt'); + $this->assertFieldChecked('edit-field-settings-translation-sync-title'); $edit = array( - 'instance[settings][translation_sync][alt]' => FALSE, - 'instance[settings][translation_sync][title]' => FALSE, + 'field[settings][translation_sync][alt]' => FALSE, + 'field[settings][translation_sync][title]' => FALSE, ); $this->drupalPostForm(NULL, $edit, t('Save settings')); diff --git a/core/modules/content_translation/src/Tests/ContentTranslationTestBase.php b/core/modules/content_translation/src/Tests/ContentTranslationTestBase.php index 81de3aa..ad67ac0 100644 --- a/core/modules/content_translation/src/Tests/ContentTranslationTestBase.php +++ b/core/modules/content_translation/src/Tests/ContentTranslationTestBase.php @@ -182,7 +182,7 @@ protected function setupTestFields() { 'cardinality' => 1, 'translatable' => TRUE, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => $this->entityTypeId, 'field_name' => $this->fieldName, 'bundle' => $this->bundle, diff --git a/core/modules/datetime/config/schema/datetime.schema.yml b/core/modules/datetime/config/schema/datetime.schema.yml index ef81fbf..b9837df 100644 --- a/core/modules/datetime/config/schema/datetime.schema.yml +++ b/core/modules/datetime/config/schema/datetime.schema.yml @@ -8,7 +8,7 @@ field.datetime.settings: type: string label: 'Date type' -field.datetime.instance_settings: +field.datetime.field_settings: type: sequence label: 'Settings' sequence: diff --git a/core/modules/datetime/src/Tests/DateTimeFieldTest.php b/core/modules/datetime/src/Tests/DateTimeFieldTest.php index 1ecb656..fd51798 100644 --- a/core/modules/datetime/src/Tests/DateTimeFieldTest.php +++ b/core/modules/datetime/src/Tests/DateTimeFieldTest.php @@ -33,11 +33,11 @@ class DateTimeFieldTest extends WebTestBase { protected $fieldStorage; /** - * The instance used in this test class. + * The field used in this test class. * - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; protected function setUp() { parent::setUp(); @@ -59,14 +59,14 @@ protected function setUp() { 'settings' => array('datetime_type' => 'date'), )); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', 'required' => TRUE, )); - $this->instance->save(); + $this->field->save(); - entity_get_form_display($this->instance->entity_type, $this->instance->bundle, 'default') + entity_get_form_display($this->field->entity_type, $this->field->bundle, 'default') ->setComponent($this->fieldStorage->name, array( 'type' => 'datetime_default', )) @@ -77,7 +77,7 @@ protected function setUp() { 'label' => 'hidden', 'settings' => array('format_type' => 'medium'), ); - entity_get_display($this->instance->entity_type, $this->instance->bundle, 'full') + entity_get_display($this->field->entity_type, $this->field->bundle, 'full') ->setComponent($this->fieldStorage->name, $this->display_options) ->save(); } @@ -123,7 +123,7 @@ function testDateField() { foreach ($values as $new_value) { // Update the entity display settings. $this->display_options['settings'] = array($setting => $new_value); - entity_get_display($this->instance->entity_type, $this->instance->bundle, 'full') + entity_get_display($this->field->entity_type, $this->field->bundle, 'full') ->setComponent($field_name, $this->display_options) ->save(); @@ -141,7 +141,7 @@ function testDateField() { // Verify that the plain formatter works. $this->display_options['type'] = 'datetime_plain'; - entity_get_display($this->instance->entity_type, $this->instance->bundle, 'full') + entity_get_display($this->field->entity_type, $this->field->bundle, 'full') ->setComponent($field_name, $this->display_options) ->save(); $expected = $date->format(DATETIME_DATE_STORAGE_FORMAT); @@ -190,7 +190,7 @@ function testDatetimeField() { foreach ($values as $new_value) { // Update the entity display settings. $this->display_options['settings'] = array($setting => $new_value); - entity_get_display($this->instance->entity_type, $this->instance->bundle, 'full') + entity_get_display($this->field->entity_type, $this->field->bundle, 'full') ->setComponent($field_name, $this->display_options) ->save(); @@ -208,7 +208,7 @@ function testDatetimeField() { // Verify that the plain formatter works. $this->display_options['type'] = 'datetime_plain'; - entity_get_display($this->instance->entity_type, $this->instance->bundle, 'full') + entity_get_display($this->field->entity_type, $this->field->bundle, 'full') ->setComponent($field_name, $this->display_options) ->save(); $expected = $date->format(DATETIME_DATETIME_STORAGE_FORMAT); @@ -226,7 +226,7 @@ function testDatelistWidget() { $this->fieldStorage->save(); // Change the widget to a datelist widget. - entity_get_form_display($this->instance->entity_type, $this->instance->bundle, 'default') + entity_get_form_display($this->field->entity_type, $this->field->bundle, 'default') ->setComponent($field_name, array( 'type' => 'datetime_datelist', 'settings' => array( @@ -297,17 +297,17 @@ function testDefaultValue() { )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'date_content', )); - $instance->save(); + $field->save(); // Set now as default_value. - $instance_edit = array( + $field_edit = array( 'default_value_input[default_date_type]' => 'now', ); - $this->drupalPostForm('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name, $instance_edit, t('Save settings')); + $this->drupalPostForm('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name, $field_edit, t('Save settings')); // Check that default value is selected in default value form. $this->drupalGet('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name); @@ -315,7 +315,7 @@ function testDefaultValue() { $this->assertFieldByName('default_value_input[default_date]', '', 'The relative default value is empty in instance settings page'); // Check if default_date has been stored successfully. - $config_entity = $this->container->get('config.factory')->get('field.instance.node.date_content.' . $field_storage->name)->get(); + $config_entity = $this->container->get('config.factory')->get('field.field.node.date_content.' . $field_storage->name)->get(); $this->assertEqual($config_entity['default_value'][0], array('default_date_type' => 'now', 'default_date' => 'now'), 'Default value has been stored successfully'); // Clear field cache in order to avoid stale cache values. @@ -327,20 +327,20 @@ function testDefaultValue() { $this->assertEqual($new_node->get($field_storage->name)->offsetGet(0)->value, $expected_date->format(DATETIME_DATE_STORAGE_FORMAT)); // Set an invalid relative default_value to test validation. - $instance_edit = array( + $field_edit = array( 'default_value_input[default_date_type]' => 'relative', 'default_value_input[default_date]' => 'invalid date', ); - $this->drupalPostForm('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name, $instance_edit, t('Save settings')); + $this->drupalPostForm('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name, $field_edit, t('Save settings')); $this->assertText('The relative date value entered is invalid.'); // Set a relative default_value. - $instance_edit = array( + $field_edit = array( 'default_value_input[default_date_type]' => 'relative', 'default_value_input[default_date]' => '+90 days', ); - $this->drupalPostForm('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name, $instance_edit, t('Save settings')); + $this->drupalPostForm('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name, $field_edit, t('Save settings')); // Check that default value is selected in default value form. $this->drupalGet('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name); @@ -348,7 +348,7 @@ function testDefaultValue() { $this->assertFieldByName('default_value_input[default_date]', '+90 days', 'The relative default value is displayed in instance settings page'); // Check if default_date has been stored successfully. - $config_entity = $this->container->get('config.factory')->get('field.instance.node.date_content.' . $field_storage->name)->get(); + $config_entity = $this->container->get('config.factory')->get('field.field.node.date_content.' . $field_storage->name)->get(); $this->assertEqual($config_entity['default_value'][0], array('default_date_type' => 'relative', 'default_date' => '+90 days'), 'Default value has been stored successfully'); // Clear field cache in order to avoid stale cache values. @@ -360,10 +360,10 @@ function testDefaultValue() { $this->assertEqual($new_node->get($field_storage->name)->offsetGet(0)->value, $expected_date->format(DATETIME_DATE_STORAGE_FORMAT)); // Remove default value. - $instance_edit = array( + $field_edit = array( 'default_value_input[default_date_type]' => '', ); - $this->drupalPostForm('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name, $instance_edit, t('Save settings')); + $this->drupalPostForm('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name, $field_edit, t('Save settings')); // Check that default value is selected in default value form. $this->drupalGet('admin/structure/types/manage/date_content/fields/node.date_content.' . $field_storage->name); @@ -371,7 +371,7 @@ function testDefaultValue() { $this->assertFieldByName('default_value_input[default_date]', '', 'The relative default value is empty in instance settings page'); // Check if default_date has been stored successfully. - $config_entity = $this->container->get('config.factory')->get('field.instance.node.date_content.' . $field_storage->name)->get(); + $config_entity = $this->container->get('config.factory')->get('field.field.node.date_content.' . $field_storage->name)->get(); $this->assertTrue(empty($config_entity['default_value']), 'Empty default value has been stored successfully'); // Clear field cache in order to avoid stale cache values. diff --git a/core/modules/datetime/src/Tests/DateTimeItemTest.php b/core/modules/datetime/src/Tests/DateTimeItemTest.php index 13ae3bb..d26f1fa 100644 --- a/core/modules/datetime/src/Tests/DateTimeItemTest.php +++ b/core/modules/datetime/src/Tests/DateTimeItemTest.php @@ -36,14 +36,14 @@ protected function setUp() { 'settings' => array('datetime_type' => 'date'), )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', 'settings' => array( 'default_value' => 'blank', ), )); - $instance->save(); + $field->save(); } /** diff --git a/core/modules/editor/src/Tests/QuickEditIntegrationTest.php b/core/modules/editor/src/Tests/QuickEditIntegrationTest.php index 2ba6aff..88a9e71 100644 --- a/core/modules/editor/src/Tests/QuickEditIntegrationTest.php +++ b/core/modules/editor/src/Tests/QuickEditIntegrationTest.php @@ -72,7 +72,7 @@ protected function setUp() { // Create a field. $this->field_name = 'field_textarea'; - $this->createFieldWithInstance( + $this->createFieldWithStorage( $this->field_name, 'text', 1, 'Long text field', // Instance settings. array('text_processing' => 1), diff --git a/core/modules/entity/src/EntityDisplayBase.php b/core/modules/entity/src/EntityDisplayBase.php index 8b108a2..1a79763 100644 --- a/core/modules/entity/src/EntityDisplayBase.php +++ b/core/modules/entity/src/EntityDisplayBase.php @@ -11,7 +11,7 @@ use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Entity\Display\EntityDisplayInterface; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Provides a common base class for entity view and form displays. @@ -168,9 +168,9 @@ public function calculateDependencies() { // Create dependencies on both hidden and visible fields. $fields = $this->content + $this->hidden; foreach ($fields as $field_name => $component) { - $field_instance = FieldInstanceConfig::loadByName($this->targetEntityType, $this->bundle, $field_name); - if ($field_instance) { - $this->addDependency('entity', $field_instance->getConfigDependencyName()); + $field = FieldConfig::loadByName($this->targetEntityType, $this->bundle, $field_name); + if ($field) { + $this->addDependency('entity', $field->getConfigDependencyName()); } // Create a dependency on the module that provides the formatter or // widget. @@ -370,7 +370,7 @@ protected function getFieldDefinitions() { * Determines if a field has options for a given display. * * @param FieldDefinitionInterface $definition - * A field instance definition. + * A field definition. * @return array|null */ private function fieldHasDisplayOptions(FieldDefinitionInterface $definition) { diff --git a/core/modules/entity/src/Tests/EntityDisplayTest.php b/core/modules/entity/src/Tests/EntityDisplayTest.php index 1efa671..00c674f 100644 --- a/core/modules/entity/src/Tests/EntityDisplayTest.php +++ b/core/modules/entity/src/Tests/EntityDisplayTest.php @@ -138,18 +138,18 @@ public function testExtraFieldComponent() { */ public function testFieldComponent() { $field_name = 'test_field'; - // Create a field storage and an instance. + // Create a field storage and a field. $field_storage = entity_create('field_storage_config', array( 'name' => $field_name, 'entity_type' => 'entity_test', 'type' => 'test_field' )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', )); - $instance->save(); + $field->save(); $display = entity_create('entity_view_display', array( 'targetEntityType' => 'entity_test', @@ -194,7 +194,7 @@ public function testFieldComponent() { // Check that the display has dependencies on the field and the module that // provides the formatter. $dependencies = $display->calculateDependencies(); - $this->assertEqual(array('entity' => array('field.instance.entity_test.entity_test.test_field'), 'module' => array('entity_test', 'field_test')), $dependencies); + $this->assertEqual(array('entity' => array('field.field.entity_test.entity_test.test_field'), 'module' => array('entity_test', 'field_test')), $dependencies); } /** @@ -286,7 +286,7 @@ public function testRenameDeleteBundle() { $this->assertEqual('node.article_rename.default', $new_form_display->id); $expected_dependencies = array( - 'entity' => array('field.instance.node.article_rename.body', 'node.type.article_rename'), + 'entity' => array('field.field.node.article_rename.body', 'node.type.article_rename'), 'module' => array('text') ); // Check that the display has dependencies on the bundle, fields and the @@ -308,22 +308,22 @@ public function testRenameDeleteBundle() { } /** - * Tests deleting field instance. + * Tests deleting field. */ - public function testDeleteFieldInstance() { + public function testDeleteField() { $field_name = 'test_field'; - // Create a field storage and an instance. + // Create a field storage and a field. $field_storage = entity_create('field_storage_config', array( 'name' => $field_name, 'entity_type' => 'entity_test', 'type' => 'test_field' )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', )); - $instance->save(); + $field->save(); // Create default and teaser entity display. entity_create('view_mode', array('id' => 'entity_test.teaser', 'targetEntityType' => 'entity_test'))->save(); @@ -344,8 +344,8 @@ public function testDeleteFieldInstance() { $display = entity_get_display('entity_test', 'entity_test', 'teaser'); $this->assertTrue($display->getComponent($field_name)); - // Delete the instance. - $instance->delete(); + // Delete the field. + $field->delete(); // Check that the component has been removed from the entity displays. $display = entity_get_display('entity_test', 'entity_test', 'default'); diff --git a/core/modules/entity/src/Tests/EntityFormDisplayTest.php b/core/modules/entity/src/Tests/EntityFormDisplayTest.php index eaaec9a..87dcaa9 100644 --- a/core/modules/entity/src/Tests/EntityFormDisplayTest.php +++ b/core/modules/entity/src/Tests/EntityFormDisplayTest.php @@ -47,7 +47,7 @@ public function testEntityGetFromDisplay() { * Tests the behavior of a field component within an EntityFormDisplay object. */ public function testFieldComponent() { - // Create a field storage and an instance. + // Create a field storage and a field. $field_name = 'test_field'; $field_storage = entity_create('field_storage_config', array( 'name' => $field_name, @@ -55,11 +55,11 @@ public function testFieldComponent() { 'type' => 'test_field' )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', )); - $instance->save(); + $field->save(); $form_display = entity_create('entity_form_display', array( 'targetEntityType' => 'entity_test', @@ -172,22 +172,22 @@ public function testBaseFieldComponent() { } /** - * Tests deleting field instance. + * Tests deleting field. */ - public function testDeleteFieldInstance() { + public function testDeleteField() { $field_name = 'test_field'; - // Create a field storage and an instance. + // Create a field storage and a field. $field_storage = entity_create('field_storage_config', array( 'name' => $field_name, 'entity_type' => 'entity_test', 'type' => 'test_field' )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', )); - $instance->save(); + $field->save(); // Create default and compact entity display. entity_create('form_mode', array('id' => 'entity_test.compact', 'targetEntityType' => 'entity_test'))->save(); @@ -208,8 +208,8 @@ public function testDeleteFieldInstance() { $display = entity_get_form_display('entity_test', 'entity_test', 'compact'); $this->assertTrue($display->getComponent($field_name)); - // Delete the instance. - $instance->delete(); + // Delete the field. + $field->delete(); // Check that the component has been removed from the entity displays. $display = entity_get_form_display('entity_test', 'entity_test', 'default'); diff --git a/core/modules/entity_reference/config/schema/entity_reference.schema.yml b/core/modules/entity_reference/config/schema/entity_reference.schema.yml index 242faf3..16f1753 100644 --- a/core/modules/entity_reference/config/schema/entity_reference.schema.yml +++ b/core/modules/entity_reference/config/schema/entity_reference.schema.yml @@ -8,7 +8,7 @@ field.entity_reference.settings: type: string label: 'Type of item to reference' -field.entity_reference.instance_settings: +field.entity_reference.field_settings: type: mapping label: 'Entity reference settings' mapping: diff --git a/core/modules/entity_reference/entity_reference.module b/core/modules/entity_reference/entity_reference.module index 75ab68c..891dcf4 100644 --- a/core/modules/entity_reference/entity_reference.module +++ b/core/modules/entity_reference/entity_reference.module @@ -11,7 +11,7 @@ use Drupal\Core\Render\Element; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\field\FieldStorageConfigInterface; /** @@ -93,9 +93,9 @@ function entity_reference_field_storage_config_update(FieldStorageConfigInterfac foreach ($field_storage->bundles() as $entity_type => $bundles) { foreach ($bundles as $bundle) { - $instance = FieldInstanceConfig::loadByName($entity_type, $bundle, $field_name); - $instance->settings['handler_settings'] = array(); - $instance->save(); + $field = FieldConfig::loadByName($entity_type, $bundle, $field_name); + $field->settings['handler_settings'] = array(); + $field->save(); } } } @@ -104,10 +104,10 @@ function entity_reference_field_storage_config_update(FieldStorageConfigInterfac * Render API callback: Processes the field instance settings form and allows * access to the form state. * - * @see entity_reference_field_instance_settings_form() + * @see entity_reference_field_field_settings_form() */ -function _entity_reference_field_instance_settings_ajax_process($form, FormStateInterface $form_state) { - _entity_reference_field_instance_settings_ajax_process_element($form, $form); +function _entity_reference_field_field_settings_ajax_process($form, FormStateInterface $form_state) { + _entity_reference_field_field_settings_ajax_process_element($form, $form); return $form; } @@ -115,9 +115,9 @@ function _entity_reference_field_instance_settings_ajax_process($form, FormState * Adds entity_reference specific properties to AJAX form elements from the * field instance settings form. * - * @see _entity_reference_field_instance_settings_ajax_process() + * @see _entity_reference_field_field_settings_ajax_process() */ -function _entity_reference_field_instance_settings_ajax_process_element(&$element, $main_form) { +function _entity_reference_field_field_settings_ajax_process_element(&$element, $main_form) { if (!empty($element['#ajax'])) { $element['#ajax'] = array( 'callback' => 'entity_reference_settings_ajax', @@ -127,7 +127,7 @@ function _entity_reference_field_instance_settings_ajax_process_element(&$elemen } foreach (Element::children($element) as $key) { - _entity_reference_field_instance_settings_ajax_process_element($element[$key], $main_form); + _entity_reference_field_field_settings_ajax_process_element($element[$key], $main_form); } } @@ -156,7 +156,7 @@ function _entity_reference_element_validate_filter(&$element, FormStateInterface /** * Ajax callback for the handler settings form. * - * @see entity_reference_field_instance_settings_form() + * @see entity_reference_field_field_settings_form() */ function entity_reference_settings_ajax($form, FormStateInterface $form_state) { $trigger = $form_state['triggering_element']; @@ -166,7 +166,7 @@ function entity_reference_settings_ajax($form, FormStateInterface $form_state) { /** * Submit handler for the non-JS case. * - * @see entity_reference_field_instance_settings_form() + * @see entity_reference_field_field_settings_form() */ function entity_reference_settings_ajax_submit($form, FormStateInterface $form_state) { $form_state['rebuild'] = TRUE; @@ -181,7 +181,7 @@ function entity_reference_query_entity_reference_alter(AlterableInterface $query } /** - * Creates an instance of a entity reference field on the specified bundle. + * Creates an field of a entity reference field storage on the specified bundle. * * @param string $entity_type * The type of entity the field instance will be attached to. @@ -204,10 +204,10 @@ function entity_reference_query_entity_reference_alter(AlterableInterface $query * * @see \Drupal\entity_reference\Plugin\entity_reference\selection\SelectionBase::settingsForm() */ -function entity_reference_create_instance($entity_type, $bundle, $field_name, $field_label, $target_entity_type, $selection_handler = 'default', $selection_handler_settings = array(), $cardinality = 1) { +function entity_reference_create_field($entity_type, $bundle, $field_name, $field_label, $target_entity_type, $selection_handler = 'default', $selection_handler_settings = array(), $cardinality = 1) { // Look for or add the specified field to the requested entity bundle. $field_storage = FieldStorageConfig::loadByName($entity_type, $field_name); - $instance = FieldInstanceConfig::loadByName($entity_type, $bundle, $field_name); + $field = FieldConfig::loadByName($entity_type, $bundle, $field_name); if (empty($field_storage)) { $field_storage = array( @@ -222,8 +222,8 @@ function entity_reference_create_instance($entity_type, $bundle, $field_name, $f entity_create('field_storage_config', $field_storage)->save(); } - if (empty($instance)) { - $instance = array( + if (empty($field)) { + $field = array( 'field_name' => $field_name, 'entity_type' => $entity_type, 'bundle' => $bundle, @@ -233,7 +233,7 @@ function entity_reference_create_instance($entity_type, $bundle, $field_name, $f 'handler_settings' => $selection_handler_settings, ), ); - entity_create('field_instance_config', $instance)->save(); + entity_create('field_config', $field)->save(); } } diff --git a/core/modules/entity_reference/src/ConfigurableEntityReferenceItem.php b/core/modules/entity_reference/src/ConfigurableEntityReferenceItem.php index 047b806..a9a57f8 100644 --- a/core/modules/entity_reference/src/ConfigurableEntityReferenceItem.php +++ b/core/modules/entity_reference/src/ConfigurableEntityReferenceItem.php @@ -45,10 +45,10 @@ public static function defaultSettings() { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array( 'handler_settings' => array(), - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); } /** @@ -177,8 +177,8 @@ public function settingsForm(array &$form, FormStateInterface $form_state, $has_ /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { - $instance = $form_state['instance']; + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { + $field = $form_state['field']; // Get all selection plugins for this entity type. $selection_plugins = \Drupal::service('plugin.manager.entity_reference.selection')->getSelectionGroups($this->getSetting('target_type')); @@ -201,9 +201,9 @@ public function instanceSettingsForm(array $form, FormStateInterface $form_state 'css' => array(drupal_get_path('module', 'entity_reference') . '/css/entity_reference.admin.css'), ), '#process' => array( - '_entity_reference_field_instance_settings_ajax_process', + '_entity_reference_field_field_settings_ajax_process', ), - '#element_validate' => array(array(get_class($this), 'instanceSettingsFormValidate')), + '#element_validate' => array(array(get_class($this), 'fieldSettingsFormValidate')), ); $form['handler'] = array( '#type' => 'details', @@ -217,7 +217,7 @@ public function instanceSettingsForm(array $form, FormStateInterface $form_state '#type' => 'select', '#title' => t('Reference method'), '#options' => $handlers_options, - '#default_value' => $instance->getSetting('handler'), + '#default_value' => $field->getSetting('handler'), '#required' => TRUE, '#ajax' => TRUE, '#limit_validation_errors' => array(), @@ -237,8 +237,8 @@ public function instanceSettingsForm(array $form, FormStateInterface $form_state '#attributes' => array('class' => array('entity_reference-settings')), ); - $handler = \Drupal::service('plugin.manager.entity_reference.selection')->getSelectionHandler($instance); - $form['handler']['handler_settings'] += $handler->settingsForm($instance); + $handler = \Drupal::service('plugin.manager.entity_reference.selection')->getSelectionHandler($field); + $form['handler']['handler_settings'] += $handler->settingsForm($field); return $form; } @@ -251,10 +251,10 @@ public function instanceSettingsForm(array $form, FormStateInterface $form_state * @param \Drupal\Core\Form\FormStateInterface $form_state * The form state of the (entire) configuration form. */ - public static function instanceSettingsFormValidate(array $form, FormStateInterface $form_state) { - if ($form_state->hasValue('instance')) { - $form_state->unsetValue(array('instance', 'settings', 'handler_submit')); - $form_state['instance']->settings = $form_state->getValue(array('instance', 'settings')); + public static function fieldSettingsFormValidate(array $form, FormStateInterface $form_state) { + if ($form_state->hasValue('field')) { + $form_state->unsetValue(array('field', 'settings', 'handler_submit')); + $form_state['field']->settings = $form_state->getValue(array('field', 'settings')); } } diff --git a/core/modules/entity_reference/src/EntityReferenceAutocomplete.php b/core/modules/entity_reference/src/EntityReferenceAutocomplete.php index 63f8a00..e70fe86 100644 --- a/core/modules/entity_reference/src/EntityReferenceAutocomplete.php +++ b/core/modules/entity_reference/src/EntityReferenceAutocomplete.php @@ -11,7 +11,7 @@ use Drupal\Core\Entity\EntityManagerInterface; use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\entity_reference\Plugin\Type\SelectionPluginManager; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; /** diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php index 9812800..fb4ffb3 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceAdminTest.php @@ -59,43 +59,43 @@ public function testFieldAdminHandler() { // Check that all entity types can be referenced. $this->assertFieldSelectOptions('field[settings][target_type]', array_keys(\Drupal::entityManager()->getDefinitions())); - // Second step: 'Instance settings' form. + // Second step: 'Field settings' form. $this->drupalPostForm(NULL, array(), t('Save field settings')); // The base handler should be selected by default. - $this->assertFieldByName('instance[settings][handler]', 'default'); + $this->assertFieldByName('field[settings][handler]', 'default'); // The base handler settings should be displayed. $entity_type_id = 'node'; $bundles = entity_get_bundles($entity_type_id); foreach ($bundles as $bundle_name => $bundle_info) { - $this->assertFieldByName('instance[settings][handler_settings][target_bundles][' . $bundle_name . ']'); + $this->assertFieldByName('field[settings][handler_settings][target_bundles][' . $bundle_name . ']'); } reset($bundles); // Test the sort settings. // Option 0: no sort. - $this->assertFieldByName('instance[settings][handler_settings][sort][field]', '_none'); - $this->assertNoFieldByName('instance[settings][handler_settings][sort][direction]'); + $this->assertFieldByName('field[settings][handler_settings][sort][field]', '_none'); + $this->assertNoFieldByName('field[settings][handler_settings][sort][direction]'); // Option 1: sort by field. - $this->drupalPostAjaxForm(NULL, array('instance[settings][handler_settings][sort][field]' => 'nid'), 'instance[settings][handler_settings][sort][field]'); - $this->assertFieldByName('instance[settings][handler_settings][sort][direction]', 'ASC'); + $this->drupalPostAjaxForm(NULL, array('field[settings][handler_settings][sort][field]' => 'nid'), 'field[settings][handler_settings][sort][field]'); + $this->assertFieldByName('field[settings][handler_settings][sort][direction]', 'ASC'); // Test that a non-translatable base field is a sort option. - $this->assertFieldByXPath("//select[@name='instance[settings][handler_settings][sort][field]']/option[@value='nid']"); + $this->assertFieldByXPath("//select[@name='field[settings][handler_settings][sort][field]']/option[@value='nid']"); // Test that a translatable base field is a sort option. - $this->assertFieldByXPath("//select[@name='instance[settings][handler_settings][sort][field]']/option[@value='title']"); + $this->assertFieldByXPath("//select[@name='field[settings][handler_settings][sort][field]']/option[@value='title']"); // Test that a configurable field is a sort option. - $this->assertFieldByXPath("//select[@name='instance[settings][handler_settings][sort][field]']/option[@value='body.value']"); + $this->assertFieldByXPath("//select[@name='field[settings][handler_settings][sort][field]']/option[@value='body.value']"); // Set back to no sort. - $this->drupalPostAjaxForm(NULL, array('instance[settings][handler_settings][sort][field]' => '_none'), 'instance[settings][handler_settings][sort][field]'); - $this->assertNoFieldByName('instance[settings][handler_settings][sort][direction]'); + $this->drupalPostAjaxForm(NULL, array('field[settings][handler_settings][sort][field]' => '_none'), 'field[settings][handler_settings][sort][field]'); + $this->assertNoFieldByName('field[settings][handler_settings][sort][direction]'); // Third step: confirm. $this->drupalPostForm(NULL, array( - 'instance[settings][handler_settings][target_bundles][' . key($bundles) . ']' => key($bundles), + 'field[settings][handler_settings][target_bundles][' . key($bundles) . ']' => key($bundles), ), t('Save settings')); // Check that the field appears in the overview form. @@ -182,7 +182,7 @@ public function createEntityReferenceField($target_type, $bundle = NULL) { // Select required fields if there are any. $edit = array(); if($bundle) { - $edit['instance[settings][handler_settings][target_bundles][' . $bundle . ']'] = TRUE; + $edit['field[settings][handler_settings][target_bundles][' . $bundle . ']'] = TRUE; } // Save settings. diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php index f9b934e..3b1cc5e 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceAutoCreateTest.php @@ -41,7 +41,7 @@ protected function setUp() { 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'label' => 'Entity reference field', 'field_name' => 'test_field', 'entity_type' => 'node', diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceAutocompleteTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceAutocompleteTest.php index 7a41623..a280e76 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceAutocompleteTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceAutocompleteTest.php @@ -53,7 +53,7 @@ class EntityReferenceAutocompleteTest extends EntityUnitTestBase { protected function setUp() { parent::setUp(); - entity_reference_create_instance($this->entityType, $this->bundle, $this->fieldName, 'Field test', $this->entityType); + entity_reference_create_field($this->entityType, $this->bundle, $this->fieldName, 'Field test', $this->entityType); } /** diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceFieldDefaultValueTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceFieldDefaultValueTest.php index f36e276..180ccd7 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceFieldDefaultValueTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceFieldDefaultValueTest.php @@ -49,7 +49,7 @@ function testEntityReferenceDefaultValue() { 'settings' => array('target_type' => 'node'), )); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => 'reference_content', 'settings' => array( @@ -60,20 +60,20 @@ function testEntityReferenceDefaultValue() { ), ), )); - $this->instance->save(); + $this->field->save(); // Set created node as default_value. - $instance_edit = array( + $field_edit = array( 'default_value_input[' . $this->fieldStorage->name . '][0][target_id]' => $referenced_node->getTitle() . ' (' .$referenced_node->id() . ')', ); - $this->drupalPostForm('admin/structure/types/manage/reference_content/fields/node.reference_content.' . $this->fieldStorage->name, $instance_edit, t('Save settings')); + $this->drupalPostForm('admin/structure/types/manage/reference_content/fields/node.reference_content.' . $this->fieldStorage->name, $field_edit, t('Save settings')); // Check that default value is selected in default value form. $this->drupalGet('admin/structure/types/manage/reference_content/fields/node.reference_content.' . $this->fieldStorage->name); $this->assertRaw('name="default_value_input[' . $this->fieldStorage->name . '][0][target_id]" value="' . $referenced_node->getTitle() .' (' .$referenced_node->id() . ')', 'The default value is selected in instance settings page'); // Check if the ID has been converted to UUID in config entity. - $config_entity = $this->container->get('config.factory')->get('field.instance.node.reference_content.' . $this->fieldStorage->name)->get(); + $config_entity = $this->container->get('config.factory')->get('field.field.node.reference_content.' . $this->fieldStorage->name)->get(); $this->assertTrue(isset($config_entity['default_value'][0]['target_uuid']), 'Default value contains target_uuid property'); $this->assertEqual($config_entity['default_value'][0]['target_uuid'], $referenced_node->uuid(), 'Content uuid and config entity uuid are the same'); diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceFieldTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceFieldTest.php index 5bb3c9a..c9c4160 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceFieldTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceFieldTest.php @@ -58,7 +58,7 @@ protected function setUp() { $this->installEntitySchema('entity_test_rev'); // Setup a field and instance. - entity_reference_create_instance( + entity_reference_create_field( $this->entityType, $this->bundle, $this->fieldName, diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceFormatterTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceFormatterTest.php index 39fa649..ab8b215 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceFormatterTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceFormatterTest.php @@ -54,7 +54,7 @@ class EntityReferenceFormatterTest extends EntityUnitTestBase { protected function setUp() { parent::setUp(); - entity_reference_create_instance($this->entityType, $this->bundle, $this->fieldName, 'Field test', $this->entityType); + entity_reference_create_field($this->entityType, $this->bundle, $this->fieldName, 'Field test', $this->entityType); // Set up a field, so that the entity that'll be referenced bubbles up a // cache tag when rendering it entirely. @@ -64,7 +64,7 @@ protected function setUp() { 'type' => 'text', 'settings' => array(), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => $this->entityType, 'bundle' => $this->bundle, 'field_name' => 'body', diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceIntegrationTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceIntegrationTest.php index c16d1bc..c450687 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceIntegrationTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceIntegrationTest.php @@ -63,7 +63,7 @@ public function testSupportedEntityTypesAndWidgets() { $this->fieldName = 'field_test_' . $referenced_entities[0]->getEntityTypeId(); // Create an Entity reference field. - entity_reference_create_instance($this->entityType, $this->bundle, $this->fieldName, $this->fieldName, $referenced_entities[0]->getEntityTypeId(), 'default', array(), 2); + entity_reference_create_field($this->entityType, $this->bundle, $this->fieldName, $this->fieldName, $referenced_entities[0]->getEntityTypeId(), 'default', array(), 2); // Test the default 'entity_reference_autocomplete' widget. entity_get_form_display($this->entityType, $this->bundle, 'default')->setComponent($this->fieldName)->save(); diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceItemTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceItemTest.php index d48df38..1ffa577 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceItemTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceItemTest.php @@ -63,8 +63,8 @@ protected function setUp() { $this->term->save(); // Use the util to create an instance. - entity_reference_create_instance('entity_test', 'entity_test', 'field_test_taxonomy_term', 'Test content entity reference', 'taxonomy_term'); - entity_reference_create_instance('entity_test', 'entity_test', 'field_test_taxonomy_vocabulary', 'Test config entity reference', 'taxonomy_vocabulary'); + entity_reference_create_field('entity_test', 'entity_test', 'field_test_taxonomy_term', 'Test content entity reference', 'taxonomy_term'); + entity_reference_create_field('entity_test', 'entity_test', 'field_test_taxonomy_vocabulary', 'Test config entity reference', 'taxonomy_vocabulary'); } /** diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceSelectionAccessTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceSelectionAccessTest.php index d0f6449..c51bcb3 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceSelectionAccessTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceSelectionAccessTest.php @@ -68,7 +68,7 @@ public function testNodeHandler() { 'cardinality' => '1', )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'test_bundle', 'settings' => array( @@ -78,7 +78,7 @@ public function testNodeHandler() { ), ), )); - $instance->save(); + $field->save(); // Build a set of test data. // Titles contain HTML-special characters to test escaping. @@ -162,7 +162,7 @@ public function testNodeHandler() { 'result' => array(), ), ); - $this->assertReferenceable($instance, $referenceable_tests, 'Node handler'); + $this->assertReferenceable($field, $referenceable_tests, 'Node handler'); // Test as an admin. $admin_user = $this->drupalCreateUser(array('access content', 'bypass node access')); @@ -191,7 +191,7 @@ public function testNodeHandler() { ), ), ); - $this->assertReferenceable($instance, $referenceable_tests, 'Node handler (admin)'); + $this->assertReferenceable($field, $referenceable_tests, 'Node handler (admin)'); } /** @@ -210,7 +210,7 @@ public function testUserHandler() { 'cardinality' => '1', )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'test_bundle', 'settings' => array( @@ -220,7 +220,7 @@ public function testUserHandler() { ), ), )); - $instance->save(); + $field->save(); // Build a set of test data. $user_values = array( @@ -296,7 +296,7 @@ public function testUserHandler() { 'result' => array(), ), ); - $this->assertReferenceable($instance, $referenceable_tests, 'User handler'); + $this->assertReferenceable($field, $referenceable_tests, 'User handler'); \Drupal::currentUser()->setAccount($users['admin']); $referenceable_tests = array( @@ -335,7 +335,7 @@ public function testUserHandler() { ), ), ); - $this->assertReferenceable($instance, $referenceable_tests, 'User handler (admin)'); + $this->assertReferenceable($field, $referenceable_tests, 'User handler (admin)'); } /** @@ -355,7 +355,7 @@ public function testCommentHandler() { 'cardinality' => '1', )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'test_bundle', 'settings' => array( @@ -365,7 +365,7 @@ public function testCommentHandler() { ), ), )); - $instance->save(); + $field->save(); // Build a set of test data. $node_values = array( @@ -474,7 +474,7 @@ public function testCommentHandler() { 'result' => array(), ), ); - $this->assertReferenceable($instance, $referenceable_tests, 'Comment handler'); + $this->assertReferenceable($field, $referenceable_tests, 'Comment handler'); // Test as a comment admin. $admin_user = $this->drupalCreateUser(array('access content', 'access comments', 'administer comments')); @@ -492,7 +492,7 @@ public function testCommentHandler() { ), ), ); - $this->assertReferenceable($instance, $referenceable_tests, 'Comment handler (comment admin)'); + $this->assertReferenceable($field, $referenceable_tests, 'Comment handler (comment admin)'); // Test as a node and comment admin. $admin_user = $this->drupalCreateUser(array('access content', 'access comments', 'administer comments', 'bypass node access')); @@ -511,6 +511,6 @@ public function testCommentHandler() { ), ), ); - $this->assertReferenceable($instance, $referenceable_tests, 'Comment handler (comment + node admin)'); + $this->assertReferenceable($field, $referenceable_tests, 'Comment handler (comment + node admin)'); } } diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceSelectionSortTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceSelectionSortTest.php index 3d76c20..5200800 100644 --- a/core/modules/entity_reference/src/Tests/EntityReferenceSelectionSortTest.php +++ b/core/modules/entity_reference/src/Tests/EntityReferenceSelectionSortTest.php @@ -38,7 +38,7 @@ public function testSort() { 'entity_types' => array('node'), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'label' => 'Text Field', 'field_name' => 'field_text', 'entity_type' => 'node', @@ -60,7 +60,7 @@ public function testSort() { 'cardinality' => 1, )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'entity_type' => 'entity_test', 'bundle' => 'test_bundle', @@ -76,7 +76,7 @@ public function testSort() { ), ), )); - $instance->save(); + $field->save(); // Build a set of test data. $node_values = array( @@ -117,7 +117,7 @@ public function testSort() { $normal_user = $this->drupalCreateUser(array('access content')); \Drupal::currentUser()->setAccount($normal_user); - $handler = $this->container->get('plugin.manager.entity_reference.selection')->getSelectionHandler($instance); + $handler = $this->container->get('plugin.manager.entity_reference.selection')->getSelectionHandler($field); // Not only assert the result, but make sure the keys are sorted as // expected. @@ -129,11 +129,11 @@ public function testSort() { $this->assertIdentical($result['article'], $expected_result, 'Query sorted by field returned expected values.'); // Assert sort by property. - $instance->settings['handler_settings']['sort'] = array( + $field->settings['handler_settings']['sort'] = array( 'field' => 'nid', 'direction' => 'ASC', ); - $handler = $this->container->get('plugin.manager.entity_reference.selection')->getSelectionHandler($instance); + $handler = $this->container->get('plugin.manager.entity_reference.selection')->getSelectionHandler($field); $result = $handler->getReferenceableEntities(); $expected_result = array( $nodes['published1']->id() => $node_labels['published1'], diff --git a/core/modules/entity_reference/src/Tests/Views/EntityReferenceRelationshipTest.php b/core/modules/entity_reference/src/Tests/Views/EntityReferenceRelationshipTest.php index ca44975..6e74fbc 100644 --- a/core/modules/entity_reference/src/Tests/Views/EntityReferenceRelationshipTest.php +++ b/core/modules/entity_reference/src/Tests/Views/EntityReferenceRelationshipTest.php @@ -9,7 +9,7 @@ use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\views\Tests\ViewTestData; use Drupal\views\Tests\ViewUnitTestBase; use Drupal\views\Views; @@ -64,7 +64,7 @@ protected function setUp() { )); $field_storage->save(); - $instance = FieldInstanceConfig::create(array( + $field = FieldConfig::create(array( 'entity_type' => 'entity_test', 'field_name' => 'field_test', 'bundle' => 'entity_test', @@ -73,7 +73,7 @@ protected function setUp() { 'handler_settings' => array(), ), )); - $instance->save(); + $field->save(); // Create some test entities which link each other. $entity_storage= \Drupal::entityManager()->getStorage('entity_test'); diff --git a/core/modules/entity_reference/src/Tests/Views/SelectionTest.php b/core/modules/entity_reference/src/Tests/Views/SelectionTest.php index dbfe0f6..fef8460 100644 --- a/core/modules/entity_reference/src/Tests/Views/SelectionTest.php +++ b/core/modules/entity_reference/src/Tests/Views/SelectionTest.php @@ -45,7 +45,7 @@ public function testSelectionHandler() { 'cardinality' => '1', )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'test_bundle', 'settings' => array( @@ -60,10 +60,10 @@ public function testSelectionHandler() { ), ), )); - $instance->save(); + $field->save(); // Get values from selection handler. - $handler = $this->container->get('plugin.manager.entity_reference.selection')->getSelectionHandler($instance); + $handler = $this->container->get('plugin.manager.entity_reference.selection')->getSelectionHandler($field); $result = $handler->getReferenceableEntities(); $success = FALSE; diff --git a/core/modules/field/config/schema/field.schema.yml b/core/modules/field/config/schema/field.schema.yml index 65156b5..2d7740c 100644 --- a/core/modules/field/config/schema/field.schema.yml +++ b/core/modules/field/config/schema/field.schema.yml @@ -48,9 +48,9 @@ field.storage.*.*: - type: ignore label: 'Index' -field.instance.*.*.*: +field.field.*.*.*: type: field_config_base - label: 'Field instance' + label: 'Field' entity_form_display.field.hidden: type: entity_field_form_display_base diff --git a/core/modules/field/field.api.php b/core/modules/field/field.api.php index 8af955f..3ac1d4c 100644 --- a/core/modules/field/field.api.php +++ b/core/modules/field/field.api.php @@ -294,19 +294,19 @@ function hook_field_purge_field_storage(\Drupal\field\Entity\FieldStorageConfig } /** - * Acts when a field instance is being purged. + * Acts when a field is being purged. * - * In field_purge_instance(), after the instance definition has been removed + * In field_purge_field(), after the field definition has been removed * from the the system, the entity storage has purged stored field data, and the * field info cache has been cleared, this hook is invoked on all modules to - * allow them to respond to the field instance being purged. + * allow them to respond to the field being purged. * - * @param $instance - * The instance being purged. + * @param $field + * The field being purged. */ -function hook_field_purge_instance($instance) { - db_delete('my_module_field_instance_info') - ->condition('id', $instance['id']) +function hook_field_purge_field(\Drupal\field\Entity\FieldConfig $field) { + db_delete('my_module_field_info') + ->condition('id', $field->id()) ->execute(); } diff --git a/core/modules/field/field.module b/core/modules/field/field.module index 87ba4f7..05965e7 100644 --- a/core/modules/field/field.module +++ b/core/modules/field/field.module @@ -54,7 +54,7 @@ * and display formatters. * * - @link field_purge Field API bulk data deletion @endlink: Cleans up after - * bulk deletion operations such as deletion of field or field_instance. + * bulk deletion operations such as deletion of field storage or field. */ /** @@ -185,15 +185,15 @@ function field_entity_bundle_field_info(EntityTypeInterface $entity_type, $bundl if ($entity_type->isFieldable()) { // Query by filtering on the ID as this is more efficient than filtering // on the entity_type property directly. - $ids = \Drupal::entityQuery('field_instance_config') + $ids = \Drupal::entityQuery('field_config') ->condition('id', $entity_type->id() . '.' . $bundle . '.', 'STARTS_WITH') ->execute(); // Fetch all fields and key them by field name. - $field_instance_configs = entity_load_multiple('field_instance_config', $ids); + $field_configs = entity_load_multiple('field_config', $ids); $result = array(); - foreach ($field_instance_configs as $field_instance) { - $result[$field_instance->getName()] = $field_instance; + foreach ($field_configs as $field) { + $result[$field->getName()] = $field; } return $result; } @@ -203,22 +203,22 @@ function field_entity_bundle_field_info(EntityTypeInterface $entity_type, $bundl * Implements hook_entity_bundle_rename(). */ function field_entity_bundle_rename($entity_type, $bundle_old, $bundle_new) { - $instances = entity_load_multiple_by_properties('field_instance_config', array('entity_type' => $entity_type, 'bundle' => $bundle_old, 'include_deleted' => TRUE)); - foreach ($instances as $instance) { - $id_new = $instance->entity_type . '.' . $bundle_new . '.' . $instance->field_name; - $instance->set('id', $id_new); - $instance->bundle = $bundle_new; - // Save non-deleted instances. - if (!$instance->isDeleted()) { - $instance->allowBundleRename(); - $instance->save(); + $fields = entity_load_multiple_by_properties('field_config', array('entity_type' => $entity_type, 'bundle' => $bundle_old, 'include_deleted' => TRUE)); + foreach ($fields as $field) { + $id_new = $field->entity_type . '.' . $bundle_new . '.' . $field->field_name; + $field->set('id', $id_new); + $field->bundle = $bundle_new; + // Save non-deleted fields. + if (!$field->isDeleted()) { + $field->allowBundleRename(); + $field->save(); } - // Update deleted instances directly in the state storage. + // Update deleted fields directly in the state storage. else { $state = \Drupal::state(); - $deleted_instances = $state->get('field.instance.deleted') ?: array(); - $deleted_instances[$instance->uuid] = $instance->toArray(); - $state->set('field.instance.deleted', $deleted_instances); + $deleted_fields = $state->get('field.field.deleted') ?: array(); + $deleted_fields[$field->uuid] = $field->toArray(); + $state->set('field.field.deleted', $deleted_fields); } } } @@ -226,20 +226,18 @@ function field_entity_bundle_rename($entity_type, $bundle_old, $bundle_new) { /** * Implements hook_entity_bundle_delete(). * - * This deletes the data for the field instances as well as the field instances - * themselves. This function actually just marks the data and field instances as - * deleted, leaving the garbage collection for a separate process, because it is - * not always possible to delete this much data in a single page request - * (particularly since for some field types, the deletion is more than just a - * simple DELETE query). + * This deletes the data for the field as well as the field themselves. This + * function actually just marks the data and fields as deleted, leaving the + * garbage collection for a separate process, because it is not always + * possible to delete this much data in a single page request (particularly + * since for some field types, the deletion is more than just a simple DELETE + * query). */ function field_entity_bundle_delete($entity_type, $bundle) { - // Get the instances on the bundle. entity_load_multiple_by_properties() must - // be used here since field_info_instances() does not return instances for - // disabled entity types or bundles. - $instances = entity_load_multiple_by_properties('field_instance_config', array('entity_type' => $entity_type, 'bundle' => $bundle)); - foreach ($instances as $instance) { - $instance->delete(); + // Get the fields on the bundle. + $fields = entity_load_multiple_by_properties('field_config', array('entity_type' => $entity_type, 'bundle' => $bundle)); + foreach ($fields as $field) { + $field->delete(); } } diff --git a/core/modules/field/field.purge.inc b/core/modules/field/field.purge.inc index 2676952..73de63f 100644 --- a/core/modules/field/field.purge.inc +++ b/core/modules/field/field.purge.inc @@ -8,6 +8,7 @@ use Drupal\Core\Field\FieldException; use Drupal\field\Entity\FieldStorageConfig; use Drupal\field\FieldStorageConfigInterface; +use Drupal\field\FieldConfigInterface; /** * @defgroup field_purge Field API bulk data deletion @@ -15,7 +16,7 @@ * Cleans up after Field API bulk deletion operations. * * Field API provides functions for deleting data attached to individual - * entities as well as deleting entire fields or field instances in a single + * entities as well as deleting entire fields or field storages in a single * operation. * * When a single entity is deleted, the Entity storage performs the @@ -30,14 +31,14 @@ * * Similar operations are performed on deletion of a single entity revision. * - * When a field, bundle, or field instance is deleted, it is not practical to + * When a bundle, field or field storage is deleted, it is not practical to * perform those operations immediately on every affected entity in a single * page request; there could be thousands or millions of them. Instead, the - * appropriate field data items, instances, and/or fields are marked as deleted - * so that subsequent load or query operations will not return them. Later, a - * separate process cleans up, or "purges", the marked-as-deleted data by going - * through the three-step process described above and, finally, removing deleted - * field and instance records. + * appropriate field data items, fields, and/or field storages are marked as + * deleted so that subsequent load or query operations will not return them. + * Later, a separate process cleans up, or "purges", the marked-as-deleted data + * by going through the three-step process described above and, finally, + * removing deleted field storage and field records. * * Purging field data is made somewhat tricky by the fact that, while * $entity->delete() has a complete entity to pass to the various deletion @@ -50,22 +51,21 @@ * Field API resolves this problem by using stub entities during purge * operations, containing only the information from the original entity that * Field API knows about: entity type, ID, revision ID, and bundle. It also - * contains the field data for whichever field instance is currently being - * purged. + * contains the field data for whichever field is currently being purged. * * See @link field Field API @endlink for information about the other parts of * the Field API. */ /** - * Purges a batch of deleted Field API data, instances, or fields. + * Purges a batch of deleted Field API data, field storages, or fields. * * This function will purge deleted field data in batches. The batch size * is defined as an argument to the function, and once each batch is finished, * it continues with the next batch until all have completed. If a deleted field - * instance with no remaining data records is found, the instance itself will - * be purged. If a deleted field with no remaining field instances is found, the - * field itself will be purged. + * with no remaining data records is found, the field itself will + * be purged. If a deleted field storage with no remaining fields is found, the + * field storage itself will be purged. * * @param $batch_size * The maximum number of field data records to purge before returning. @@ -80,11 +80,11 @@ function field_purge_batch($batch_size, $field_storage_uuid = NULL) { if ($field_storage_uuid) { $properties['field_storage_uuid'] = $field_storage_uuid; } - $instances = entity_load_multiple_by_properties('field_instance_config', $properties); + $fields = entity_load_multiple_by_properties('field_config', $properties); $info = \Drupal::entityManager()->getDefinitions(); - foreach ($instances as $instance) { - $entity_type = $instance->entity_type; + foreach ($fields as $field) { + $entity_type = $field->entity_type; // We cannot purge anything if the entity type is unknown (e.g. the // providing module was uninstalled). @@ -93,10 +93,10 @@ function field_purge_batch($batch_size, $field_storage_uuid = NULL) { continue; } - $count_purged = \Drupal::entityManager()->getStorage($entity_type)->purgeFieldData($instance, $batch_size); + $count_purged = \Drupal::entityManager()->getStorage($entity_type)->purgeFieldData($field, $batch_size); if ($count_purged < $batch_size || $count_purged == 0) { - // No field data remains for the instance, so we can remove it. - field_purge_instance($instance); + // No field data remains for the field, so we can remove it. + field_purge_field($field); } $batch_size -= $count_purged; // Only delete up to the maximum number of records. @@ -105,8 +105,7 @@ function field_purge_batch($batch_size, $field_storage_uuid = NULL) { } } - // Retrieve all deleted field storages. Any that have no instances can be - // purged. + // Retrieve all deleted field storages. Any that have no fields can be purged. $deleted_storages = \Drupal::state()->get('field.storage.deleted') ?: array(); foreach ($deleted_storages as $field_storage) { $field_storage = new FieldStorageConfig($field_storage); @@ -122,45 +121,47 @@ function field_purge_batch($batch_size, $field_storage_uuid = NULL) { continue; } - $instances = entity_load_multiple_by_properties('field_instance_config', array('field_storage_uuid' => $field_storage->uuid(), 'include_deleted' => TRUE)); - if (empty($instances)) { + $fields = entity_load_multiple_by_properties('field_config', array('field_storage_uuid' => $field_storage->uuid(), 'include_deleted' => TRUE)); + if (empty($fields)) { field_purge_field_storage($field_storage); } } } /** - * Purges a field instance record from the database. + * Purges a field record from the database. * - * This function assumes all data for the instance has already been purged and + * This function assumes all data for the field has already been purged and * should only be called by field_purge_batch(). * - * @param $instance - * The instance record to purge. + * @param $field + * The field record to purge. */ -function field_purge_instance($instance) { +function field_purge_field(FieldConfigInterface $field) { $state = \Drupal::state(); - $deleted_instances = $state->get('field.instance.deleted'); - unset($deleted_instances[$instance->uuid()]); - $state->set('field.instance.deleted', $deleted_instances); + $deleted_fields = $state->get('field.field.deleted'); + unset($deleted_fields[$field->uuid()]); + $state->set('field.field.deleted', $deleted_fields); // Invoke external hooks after the cache is cleared for API consistency. - \Drupal::moduleHandler()->invokeAll('field_purge_instance', array($instance)); + \Drupal::moduleHandler()->invokeAll('field_purge_field', array($field)); } /** * Purges a field record from the database. * - * This function assumes all instances for the field has already been purged, - * and should only be called by field_purge_batch(). + * This function assumes all fields for the field storage has already been + * purged, and should only be called by field_purge_batch(). * * @param \Drupal\field\FieldStorageConfigInterface $field_storage * The field storage to purge. + * + * @throws Drupal\field\FieldException */ function field_purge_field_storage(FieldStorageConfigInterface $field_storage) { - $instances = entity_load_multiple_by_properties('field_instance_config', array('field_storage_uuid' => $field_storage->uuid(), 'include_deleted' => TRUE)); - if (count($instances) > 0) { - throw new FieldException(t('Attempt to purge a field storage @field_name that still has instances.', array('@field_name' => $field_storage->getName()))); + $fields = entity_load_multiple_by_properties('field_config', array('field_storage_uuid' => $field_storage->uuid(), 'include_deleted' => TRUE)); + if (count($fields) > 0) { + throw new FieldException(t('Attempt to purge a field storage @field_name that still has fields.', array('@field_name' => $field_storage->getName()))); } $state = \Drupal::state(); diff --git a/core/modules/field/field.views.inc b/core/modules/field/field.views.inc index 3f68419..5ce9840 100644 --- a/core/modules/field/field.views.inc +++ b/core/modules/field/field.views.inc @@ -9,7 +9,7 @@ use Drupal\Core\Entity\ContentEntityDatabaseStorage; use Drupal\Core\Entity\EntityStorageInterface; use Drupal\field\FieldStorageConfigInterface; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; /** * Implements hook_views_data(). @@ -74,19 +74,19 @@ function _field_views_is_sql_entity_type(FieldStorageConfigInterface $field_stor /** * Returns the label of a certain field. * - * Therefore it looks up in all bundles to find the most used instance. + * Therefore it looks up in all bundles to find the most used field. */ function field_views_field_label($entity_type, $field_name) { $label_counter = array(); $all_labels = array(); - // Count the amount of instances per label per field. + // Count the amount of fields per label per field storage. foreach (array_keys(\Drupal::entityManager()->getBundleInfo($entity_type)) as $bundle) { - $bundle_instances = array_filter(\Drupal::entityManager()->getFieldDefinitions($entity_type, $bundle), function ($field_definition) { - return $field_definition instanceof FieldInstanceConfigInterface; + $bundle_fields = array_filter(\Drupal::entityManager()->getFieldDefinitions($entity_type, $bundle), function ($field_definition) { + return $field_definition instanceof FieldConfigInterface; }); - if (isset($bundle_instances[$field_name])) { - $instance = $bundle_instances[$field_name]; - $label = $instance->getLabel(); + if (isset($bundle_fields[$field_name])) { + $field = $bundle_fields[$field_name]; + $label = $field->getLabel(); $label_counter[$label] = isset($label_counter[$label]) ? ++$label_counter[$label] : 1; $all_labels[$label] = TRUE; } @@ -116,7 +116,7 @@ function field_views_field_default_views_data(FieldStorageConfigInterface $field if (!\Drupal::service('plugin.manager.field.field_type')->hasDefinition($field_storage->getType())) { return $data; } - // Check the field has instances. + // Check the field storage has fields. if (!$field_storage->getBundles()) { return $data; } @@ -223,7 +223,7 @@ function field_views_field_default_views_data(FieldStorageConfigInterface $field $add_fields[] = ContentEntityDatabaseStorage::_fieldColumnName($field_storage, $column); } // Determine the label to use for the field. We don't have a label available - // at the field level, so we just go through all instances and take the one + // at the field level, so we just go through all fields and take the one // which is used the most frequently. list($label, $all_labels) = field_views_field_label($entity_type_id, $field_name); diff --git a/core/modules/field/src/ConfigImporterFieldPurger.php b/core/modules/field/src/ConfigImporterFieldPurger.php index f762954..55294b2 100644 --- a/core/modules/field/src/ConfigImporterFieldPurger.php +++ b/core/modules/field/src/ConfigImporterFieldPurger.php @@ -87,7 +87,7 @@ protected static function initializeSandbox(array &$context, ConfigImporter $con } } // Each field possibly needs one last field_purge_batch() call to remove the - // last instance and the field itself. + // last field and the field storage itself. $context['sandbox']['field']['steps_to_delete'] += count($fields); $context['sandbox']['field']['current_progress'] = 0; diff --git a/core/modules/field/src/Entity/FieldConfig.php b/core/modules/field/src/Entity/FieldConfig.php new file mode 100644 index 0000000..7c5b761 --- /dev/null +++ b/core/modules/field/src/Entity/FieldConfig.php @@ -0,0 +1,533 @@ +save()); the default value is + * added if the $entity object provides no explicit entry (actual values or + * "the field is empty") for the field. + * + * The default value is expressed as a numerically indexed array of items, + * each item being an array of key/value pairs matching the set of 'columns' + * defined by the "field schema" for the field type, as exposed in + * hook_field_schema(). If the number of items exceeds the cardinality of the + * field, extraneous items will be ignored. + * + * This property is overlooked if the $default_value_function is non-empty. + * + * Example for a integer field: + * @code + * array( + * array('value' => 1), + * array('value' => 2), + * ) + * @endcode + * + * @var array + */ + public $default_value = array(); + + /** + * The name of a callback function that returns default values. + * + * The function will be called with the following arguments: + * - \Drupal\Core\Entity\ContentEntityInterface $entity + * The entity being created. + * - \Drupal\Core\Field\FieldDefinitionInterface $definition + * The field definition. + * It should return an array of default values, in the same format as the + * $default_value property. + * + * This property takes precedence on the list of fixed values specified in the + * $default_value property. + * + * @var string + */ + public $default_value_function = ''; + + /** + * Flag indicating whether the field is deleted. + * + * The delete() method marks the field as "deleted" and removes the + * corresponding entry from the config storage, but keeps its definition in + * the state storage while field data is purged by a separate + * garbage-collection process. + * + * Deleted fields stay out of the regular entity lifecycle (notably, their + * values are not populated in loaded entities, and are not saved back). + * + * @var bool + */ + public $deleted = FALSE; + + /** + * The associated FieldStorageConfig entity. + * + * @var \Drupal\field\Entity\FieldStorageConfig + */ + protected $fieldStorage; + + /** + * Flag indicating whether the bundle name can be renamed or not. + * + * @var bool + */ + protected $bundle_rename_allowed = FALSE; + + /** + * The data definition of a field item. + * + * @var \Drupal\Core\Field\TypedData\FieldItemDataDefinition + */ + protected $itemDefinition; + + /** + * Constructs a FieldConfig object. + * + * In most cases, FieldConfig entities are created via + * entity_create('field_config', $values), where $values is the same + * parameter as in this constructor. + * + * @param array $values + * An array of properties, keyed by property name. The storage associated to + * the field can be specified either with: + * - field_storage: the FieldStorageConfigInterface object, + * or by referring to an existing field storage in the current configuration + * with: + * - field_name: The field name. + * - entity_type: The entity type. + * Additionally, a 'bundle' property is required to indicate the entity + * bundle to which the field is attached to. Other array elements will be + * used to set the corresponding properties on the class; see the class + * property documentation for details. + * + * @see entity_create() + */ + public function __construct(array $values, $entity_type = 'field_config') { + // Allow either an injected FieldStorageConfig object, or a field_name and + // entity_type. + if (isset($values['field_storage'])) { + if (!$values['field_storage'] instanceof FieldStorageConfigInterface) { + throw new FieldException('Attempt to create a configurable field for a non-configurable field storage.'); + } + $field_storage = $values['field_storage']; + $values['field_name'] = $field_storage->getName(); + $values['entity_type'] = $field_storage->getTargetEntityTypeId(); + // The internal property is fieldStorage, not field_storage. + unset($values['field_storage']); + $values['fieldStorage'] = $field_storage; + } + else { + if (empty($values['field_name'])) { + throw new FieldException('Attempt to create a field without a field_name.'); + } + if (empty($values['entity_type'])) { + throw new FieldException(String::format('Attempt to create a field @field_name without an entity_type.', array('@field_name' => $values['field_name']))); + } + } + // 'bundle' is required in either case. + if (empty($values['bundle'])) { + throw new FieldException(String::format('Attempt to create a field @field_name without a bundle.', array('@field_name' => $values['field_name']))); + } + + parent::__construct($values, $entity_type); + } + + /** + * {@inheritdoc} + */ + public function id() { + return $this->entity_type . '.' . $this->bundle . '.' . $this->field_name; + } + + /** + * {@inheritdoc} + */ + public function getName() { + return $this->field_name; + } + + /** + * {@inheritdoc} + */ + public function postCreate(EntityStorageInterface $storage) { + parent::postCreate($storage); + + // Validate that we have a valid storage for this field. This throws an + // exception if the storage is invalid. + $this->getFieldStorageDefinition(); + + // 'Label' defaults to the field name (mostly useful for fields created in + // tests). + if (empty($this->label)) { + $this->label = $this->getName(); + } + } + + /** + * Overrides \Drupal\Core\Entity\Entity::preSave(). + * + * @throws \Drupal\Core\Field\FieldException + * If the field definition is invalid. + * @throws \Drupal\Core\Entity\EntityStorageException + * In case of failures at the configuration storage level. + */ + public function preSave(EntityStorageInterface $storage) { + $entity_manager = \Drupal::entityManager(); + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); + + $storage_definition = $this->getFieldStorageDefinition(); + + if ($this->isNew()) { + // Set the default settings. + $this->settings += $field_type_manager->getDefaultFieldSettings($storage_definition->type); + // Notify the entity storage. + $entity_manager->getStorage($this->entity_type)->onFieldDefinitionCreate($this); + } + else { + // Some updates are always disallowed. + if ($this->entity_type != $this->original->entity_type) { + throw new FieldException("Cannot change an existing field's entity_type."); + } + if ($this->bundle != $this->original->bundle && empty($this->bundleRenameAllowed)) { + throw new FieldException("Cannot change an existing field's bundle."); + } + if ($storage_definition->uuid() != $this->original->getFieldStorageDefinition()->uuid()) { + throw new FieldException("Cannot change an existing field's storage."); + } + // Set the default settings. + $this->settings += $field_type_manager->getDefaultFieldSettings($storage_definition->type); + // Notify the entity storage. + $entity_manager->getStorage($this->entity_type)->onFieldDefinitionUpdate($this, $this->original); + } + + parent::preSave($storage); + } + + /** + * {@inheritdoc} + */ + public function calculateDependencies() { + parent::calculateDependencies(); + // Mark the field_storage_config as a a dependency. + $this->addDependency('entity', $this->getFieldStorageDefinition()->getConfigDependencyName()); + return $this->dependencies; + } + + /** + * {@inheritdoc} + */ + public function postSave(EntityStorageInterface $storage, $update = TRUE) { + // Clear the cache. + \Drupal::entityManager()->clearCachedFieldDefinitions(); + + // Invalidate the render cache for all affected entities. + $entity_manager = \Drupal::entityManager(); + $entity_type = $this->getFieldStorageDefinition()->getTargetEntityTypeId(); + if ($entity_manager->hasHandler($entity_type, 'view_builder')) { + $entity_manager->getViewBuilder($entity_type)->resetCache(); + } + } + + /** + * {@inheritdoc} + */ + public static function preDelete(EntityStorageInterface $storage, array $fields) { + $state = \Drupal::state(); + + // Keep the field definitions in the state storage so we can use them + // later during field_purge_batch(). + $deleted_fields = $state->get('field.field.deleted') ?: array(); + foreach ($fields as $field) { + if (!$field->deleted) { + $config = $field->toArray(); + $config['deleted'] = TRUE; + $config['field_storage_uuid'] = $field->getFieldStorageDefinition()->uuid(); + $deleted_fields[$field->uuid()] = $config; + } + } + $state->set('field.field.deleted', $deleted_fields); + } + + /** + * {@inheritdoc} + */ + public static function postDelete(EntityStorageInterface $storage, array $fields) { + // Clear the cache upfront, to refresh the results of getBundles(). + \Drupal::entityManager()->clearCachedFieldDefinitions(); + + // Notify the entity storage. + foreach ($fields as $field) { + if (!$field->deleted) { + \Drupal::entityManager()->getStorage($field->entity_type)->onFieldDefinitionDelete($field); + } + } + + // If this is part of a configuration synchronization then the following + // configuration updates are not necessary. + $entity = reset($fields); + if ($entity->isSyncing()) { + return; + } + + // Delete field storages that have no more fields. + $storages_to_delete = array(); + foreach ($fields as $field) { + $storage_definition = $field->getFieldStorageDefinition(); + if (!$field->deleted && empty($field->noFieldDelete) && !$field->isUninstalling() && count($storage_definition->getBundles()) == 0) { + // Key by field UUID to avoid deleting the same storage twice. + $storages_to_delete[$storage_definition->uuid()] = $storage_definition; + } + } + if ($storages_to_delete) { + \Drupal::entityManager()->getStorage('field_storage_config')->delete($storages_to_delete); + } + + // Cleanup entity displays. + $displays_to_update = array(); + foreach ($fields as $field) { + if (!$field->deleted) { + $view_modes = \Drupal::entityManager()->getViewModeOptions($field->entity_type, TRUE); + foreach (array_keys($view_modes) as $mode) { + $displays_to_update['entity_view_display'][$field->entity_type . '.' . $field->bundle . '.' . $mode][] = $field->getName(); + } + $form_modes = \Drupal::entityManager()->getFormModeOptions($field->entity_type, TRUE); + foreach (array_keys($form_modes) as $mode) { + $displays_to_update['entity_form_display'][$field->entity_type . '.' . $field->bundle . '.' . $mode][] = $field->getName(); + } + } + } + foreach ($displays_to_update as $type => $ids) { + foreach (entity_load_multiple($type, array_keys($ids)) as $id => $display) { + foreach ($ids[$id] as $field_name) { + $display->removeComponent($field_name); + } + $display->save(); + } + } + } + + /** + * {@inheritdoc} + */ + protected function linkTemplates() { + $link_templates = parent::linkTemplates(); + if (\Drupal::moduleHandler()->moduleExists('field_ui')) { + $link_templates['edit-form'] = 'field_ui.field_edit_' . $this->entity_type; + $link_templates['storage-edit-form'] = 'field_ui.storage_edit_' . $this->entity_type; + $link_templates['delete-form'] = 'field_ui.delete_' . $this->entity_type; + + if (isset($link_templates['drupal:config-translation-overview'])) { + $link_templates['drupal:config-translation-overview'] .= $link_templates['edit-form']; + } + } + return $link_templates; + } + + /** + * {@inheritdoc} + */ + protected function urlRouteParameters($rel) { + $parameters = parent::urlRouteParameters($rel); + $entity_type = \Drupal::entityManager()->getDefinition($this->entity_type); + $parameters[$entity_type->getBundleEntityType()] = $this->bundle; + return $parameters; + } + + /** + * {@inheritdoc} + */ + public function isDeleted() { + return $this->deleted; + } + + /** + * {@inheritdoc} + */ + public function getFieldStorageDefinition() { + if (!$this->fieldStorage) { + $fields = $this->entityManager()->getFieldStorageDefinitions($this->entity_type); + if (!isset($fields[$this->field_name])) { + throw new FieldException(String::format('Attempt to create field @field_name that does not have an associated storage entity type @entity_type.', array('@field_name' => $this->field_name, '@entity_type' => $this->entity_type))); + } + if (!$fields[$this->field_name] instanceof FieldStorageConfigInterface) { + throw new FieldException(String::format('Attempt to create a configurable field @field_name associated to a non-configurable storage.', array('@field_name' => $this->field_name, '@entity_type' => $this->entity_type))); + } + $this->fieldStorage = $fields[$this->field_name]; + } + + return $this->fieldStorage; + } + + /** + * {@inheritdoc} + */ + public function isDisplayConfigurable($context) { + return TRUE; + } + + /** + * {@inheritdoc} + */ + public function getDisplayOptions($display_context) { + // Hide configurable fields by default. + return array('type' => 'hidden'); + } + + /** + * {@inheritdoc} + */ + public function isReadOnly() { + return FALSE; + } + + /** + * {@inheritdoc} + */ + public function isComputed() { + return FALSE; + } + + /** + * Loads a field config entity based on the entity type and field name. + * + * @param string $entity_type_id + * ID of the entity type. + * @param string $bundle + * Bundle name. + * @param string $field_name + * Name of the field. + * + * @return static + * The field config entity if one exists for the provided field + * name, otherwise NULL. + */ + public static function loadByName($entity_type_id, $bundle, $field_name) { + return \Drupal::entityManager()->getStorage('field_config')->load($entity_type_id . '.' . $bundle . '.' . $field_name); + } + +} diff --git a/core/modules/field/src/Entity/FieldInstanceConfig.php b/core/modules/field/src/Entity/FieldInstanceConfig.php deleted file mode 100644 index 4a4239d..0000000 --- a/core/modules/field/src/Entity/FieldInstanceConfig.php +++ /dev/null @@ -1,354 +0,0 @@ -getName(); - $values['entity_type'] = $field_storage->getTargetEntityTypeId(); - // The internal property is fieldStorage, not field_storage. - unset($values['field_storage']); - $values['fieldStorage'] = $field_storage; - } - else { - if (empty($values['field_name'])) { - throw new FieldException('Attempt to create a field instance without a field_name.'); - } - if (empty($values['entity_type'])) { - throw new FieldException(String::format('Attempt to create a field instance @field_name without an entity_type.', array('@field_name' => $values['field_name']))); - } - } - // 'bundle' is required in either case. - if (empty($values['bundle'])) { - throw new FieldException(String::format('Attempt to create a field instance @field_name without a bundle.', array('@field_name' => $values['field_name']))); - } - - parent::__construct($values, $entity_type); - } - - /** - * {@inheritdoc} - */ - public function postCreate(EntityStorageInterface $storage) { - parent::postCreate($storage); - - // Validate that we have a valid storage for this instance. This throws an - // exception if the storage is invalid. - $this->getFieldStorageDefinition(); - - // 'Label' defaults to the field name (mostly useful for field instances - // created in tests). - if (empty($this->label)) { - $this->label = $this->getName(); - } - } - - /** - * Overrides \Drupal\Core\Entity\Entity::preSave(). - * - * @throws \Drupal\Core\Field\FieldException - * If the field instance definition is invalid. - * @throws \Drupal\Core\Entity\EntityStorageException - * In case of failures at the configuration storage level. - */ - public function preSave(EntityStorageInterface $storage) { - $entity_manager = \Drupal::entityManager(); - $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); - - $storage_definition = $this->getFieldStorageDefinition(); - - if ($this->isNew()) { - // Set the default instance settings. - $this->settings += $field_type_manager->getDefaultInstanceSettings($storage_definition->type); - // Notify the entity storage. - $entity_manager->getStorage($this->entity_type)->onFieldDefinitionCreate($this); - } - else { - // Some updates are always disallowed. - if ($this->entity_type != $this->original->entity_type) { - throw new FieldException("Cannot change an existing instance's entity_type."); - } - if ($this->bundle != $this->original->bundle && empty($this->bundleRenameAllowed)) { - throw new FieldException("Cannot change an existing instance's bundle."); - } - if ($storage_definition->uuid() != $this->original->getFieldStorageDefinition()->uuid()) { - throw new FieldException("Cannot change an existing instance's storage."); - } - // Set the default instance settings. - $this->settings += $field_type_manager->getDefaultInstanceSettings($storage_definition->type); - // Notify the entity storage. - $entity_manager->getStorage($this->entity_type)->onFieldDefinitionUpdate($this, $this->original); - } - - parent::preSave($storage); - } - - /** - * {@inheritdoc} - */ - public function calculateDependencies() { - parent::calculateDependencies(); - // Mark the field_storage_config as a a dependency. - $this->addDependency('entity', $this->getFieldStorageDefinition()->getConfigDependencyName()); - return $this->dependencies; - } - - /** - * {@inheritdoc} - */ - public static function preDelete(EntityStorageInterface $storage, array $instances) { - $state = \Drupal::state(); - - // Keep the instance definitions in the state storage so we can use them - // later during field_purge_batch(). - $deleted_instances = $state->get('field.instance.deleted') ?: array(); - foreach ($instances as $instance) { - if (!$instance->deleted) { - $config = $instance->toArray(); - $config['deleted'] = TRUE; - $config['field_storage_uuid'] = $instance->getFieldStorageDefinition()->uuid(); - $deleted_instances[$instance->uuid()] = $config; - } - } - $state->set('field.instance.deleted', $deleted_instances); - } - - /** - * {@inheritdoc} - */ - public static function postDelete(EntityStorageInterface $storage, array $instances) { - // Clear the cache upfront, to refresh the results of getBundles(). - \Drupal::entityManager()->clearCachedFieldDefinitions(); - - // Notify the entity storage. - foreach ($instances as $instance) { - if (!$instance->deleted) { - \Drupal::entityManager()->getStorage($instance->entity_type)->onFieldDefinitionDelete($instance); - } - } - - // If this is part of a configuration synchronization then the following - // configuration updates are not necessary. - $entity = reset($instances); - if ($entity->isSyncing()) { - return; - } - - // Delete field storages that have no more instances. - $storages_to_delete = array(); - foreach ($instances as $instance) { - $storage_definition = $instance->getFieldStorageDefinition(); - if (!$instance->deleted && empty($instance->noFieldDelete) && !$instance->isUninstalling() && count($storage_definition->getBundles()) == 0) { - // Key by field UUID to avoid deleting the same storage twice. - $storages_to_delete[$storage_definition->uuid()] = $storage_definition; - } - } - if ($storages_to_delete) { - \Drupal::entityManager()->getStorage('field_storage_config')->delete($storages_to_delete); - } - - // Cleanup entity displays. - $displays_to_update = array(); - foreach ($instances as $instance) { - if (!$instance->deleted) { - $view_modes = \Drupal::entityManager()->getViewModeOptions($instance->entity_type, TRUE); - foreach (array_keys($view_modes) as $mode) { - $displays_to_update['entity_view_display'][$instance->entity_type . '.' . $instance->bundle . '.' . $mode][] = $instance->getName(); - } - $form_modes = \Drupal::entityManager()->getFormModeOptions($instance->entity_type, TRUE); - foreach (array_keys($form_modes) as $mode) { - $displays_to_update['entity_form_display'][$instance->entity_type . '.' . $instance->bundle . '.' . $mode][] = $instance->getName(); - } - } - } - foreach ($displays_to_update as $type => $ids) { - foreach (entity_load_multiple($type, array_keys($ids)) as $id => $display) { - foreach ($ids[$id] as $field_name) { - $display->removeComponent($field_name); - } - $display->save(); - } - } - } - - /** - * {@inheritdoc} - */ - protected function linkTemplates() { - $link_templates = parent::linkTemplates(); - if (\Drupal::moduleHandler()->moduleExists('field_ui')) { - $link_templates['edit-form'] = 'field_ui.instance_edit_' . $this->entity_type; - $link_templates['storage-edit-form'] = 'field_ui.storage_edit_' . $this->entity_type; - $link_templates['delete-form'] = 'field_ui.delete_' . $this->entity_type; - - if (isset($link_templates['drupal:config-translation-overview'])) { - $link_templates['drupal:config-translation-overview'] .= $link_templates['edit-form']; - } - } - return $link_templates; - } - - /** - * {@inheritdoc} - */ - protected function urlRouteParameters($rel) { - $parameters = parent::urlRouteParameters($rel); - $entity_type = \Drupal::entityManager()->getDefinition($this->entity_type); - $parameters[$entity_type->getBundleEntityType()] = $this->bundle; - return $parameters; - } - - /** - * {@inheritdoc} - */ - public function isDeleted() { - return $this->deleted; - } - - /** - * {@inheritdoc} - */ - public function getFieldStorageDefinition() { - if (!$this->fieldStorage) { - $fields = $this->entityManager()->getFieldStorageDefinitions($this->entity_type); - if (!isset($fields[$this->field_name])) { - throw new FieldException(String::format('Attempt to create an instance of field @field_name that does not exist on entity type @entity_type.', array('@field_name' => $this->field_name, '@entity_type' => $this->entity_type))); - } - if (!$fields[$this->field_name] instanceof FieldStorageConfigInterface) { - throw new FieldException(String::format('Attempt to create a configurable instance of non-configurable field @field_name.', array('@field_name' => $this->field_name, '@entity_type' => $this->entity_type))); - } - $this->fieldStorage = $fields[$this->field_name]; - } - - return $this->fieldStorage; - } - - /** - * {@inheritdoc} - */ - public function isDisplayConfigurable($context) { - return TRUE; - } - - /** - * {@inheritdoc} - */ - public function getDisplayOptions($display_context) { - // Hide configurable fields by default. - return array('type' => 'hidden'); - } - - /** - * {@inheritdoc} - */ - public function isReadOnly() { - return FALSE; - } - - /** - * {@inheritdoc} - */ - public function isComputed() { - return FALSE; - } - - /** - * Loads a field config entity based on the entity type and field name. - * - * @param string $entity_type_id - * ID of the entity type. - * @param string $bundle - * Bundle name. - * @param string $field_name - * Name of the field. - * - * @return static - * The field instance config entity if one exists for the provided field - * name, otherwise NULL. - */ - public static function loadByName($entity_type_id, $bundle, $field_name) { - return \Drupal::entityManager()->getStorage('field_instance_config')->load($entity_type_id . '.' . $bundle . '.' . $field_name); - } - -} diff --git a/core/modules/field/src/Entity/FieldStorageConfig.php b/core/modules/field/src/Entity/FieldStorageConfig.php index f6953b3..55be5f3 100644 --- a/core/modules/field/src/Entity/FieldStorageConfig.php +++ b/core/modules/field/src/Entity/FieldStorageConfig.php @@ -123,8 +123,8 @@ class FieldStorageConfig extends ConfigEntityBase implements FieldStorageConfigI * If TRUE, some actions not available though the UI (but are still possible * through direct API manipulation): * - field settings cannot be changed, - * - new instances cannot be created - * - existing instances cannot be deleted. + * - new fields cannot be created + * - existing fields cannot be deleted. * Defaults to FALSE. * * @var bool @@ -360,39 +360,39 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE) { /** * {@inheritdoc} */ - public static function preDelete(EntityStorageInterface $storage, array $fields) { + public static function preDelete(EntityStorageInterface $storage, array $field_storages) { $state = \Drupal::state(); - $instance_storage = \Drupal::entityManager()->getStorage('field_instance_config'); + $field_config_storage = \Drupal::entityManager()->getStorage('field_config'); - // Delete instances first. Note: when deleting a field through - // FieldInstanceConfig::postDelete(), the instances have been deleted already, so - // no instances will be found here. - $instance_ids = array(); - foreach ($fields as $field) { - if (!$field->deleted) { - foreach ($field->getBundles() as $bundle) { - $instance_ids[] = "{$field->entity_type}.$bundle.{$field->name}"; + // Delete fields first. Note: when deleting a field storage through + // FieldConfig::postDelete(), the fields have been deleted already, so + // no fields will be found here. + $field_ids = array(); + foreach ($field_storages as $field_storage) { + if (!$field_storage->deleted) { + foreach ($field_storage->getBundles() as $bundle) { + $field_ids[] = "{$field_storage->entity_type}.$bundle.{$field_storage->name}"; } } } - if ($instance_ids) { - $instances = $instance_storage->loadMultiple($instance_ids); + if ($field_ids) { + $fields = $field_config_storage->loadMultiple($field_ids); // Tag the objects to preserve recursive deletion of the field. - foreach ($instances as $instance) { - $instance->noFieldDelete = TRUE; + foreach ($fields as $field) { + $field->noFieldDelete = TRUE; } - $instance_storage->delete($instances); + $field_config_storage->delete($fields); } // Keep the field definitions in the state storage so we can use them later // during field_purge_batch(). $deleted_storages = $state->get('field.storage.deleted') ?: array(); - foreach ($fields as $field) { - if (!$field->deleted) { - $config = $field->toArray(); + foreach ($field_storages as $field_storage) { + if (!$field_storage->deleted) { + $config = $field_storage->toArray(); $config['deleted'] = TRUE; - $config['bundles'] = $field->getBundles(); - $deleted_storages[$field->uuid()] = $config; + $config['bundles'] = $field_storage->getBundles(); + $deleted_storages[$field_storage->uuid()] = $config; } } @@ -499,8 +499,8 @@ public function getType() { public function getSettings() { // @todo FieldTypePluginManager maintains its own static cache. However, do // some CPU and memory profiling to see if it's worth statically caching - // $field_type_info, or the default field and instance settings, within - // $this. + // $field_type_info, or the default field storage and field settings, + // within $this. $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); $settings = $field_type_manager->getDefaultSettings($this->type); diff --git a/core/modules/field/src/FieldInstanceConfigAccessControlHandler.php b/core/modules/field/src/FieldConfigAccessControlHandler.php similarity index 66% rename from core/modules/field/src/FieldInstanceConfigAccessControlHandler.php rename to core/modules/field/src/FieldConfigAccessControlHandler.php index 6b21783..c502466 100644 --- a/core/modules/field/src/FieldInstanceConfigAccessControlHandler.php +++ b/core/modules/field/src/FieldConfigAccessControlHandler.php @@ -2,7 +2,7 @@ /** * @file - * Contains \Drupal\field\FieldInstanceConfigAccessControlHandler. + * Contains \Drupal\field\FieldConfigAccessControlHandler. */ namespace Drupal\field; @@ -12,11 +12,11 @@ use Drupal\Core\Session\AccountInterface; /** - * Defines the access control handler for the field instance entity type. + * Defines the access control handler for the field entity type. * - * @see \Drupal\field\Entity\FieldInstanceConfig + * @see \Drupal\field\Entity\FieldConfig */ -class FieldInstanceConfigAccessControlHandler extends EntityAccessControlHandler { +class FieldConfigAccessControlHandler extends EntityAccessControlHandler { /** * {@inheritdoc} diff --git a/core/modules/field/src/FieldConfigInterface.php b/core/modules/field/src/FieldConfigInterface.php new file mode 100644 index 0000000..5a8dfdb --- /dev/null +++ b/core/modules/field/src/FieldConfigInterface.php @@ -0,0 +1,26 @@ +get()) { return TRUE; @@ -94,47 +101,47 @@ public function importDelete($name, Config $new_config, Config $old_config) { * {@inheritdoc} */ public function loadByProperties(array $conditions = array()) { - // Include deleted instances if specified in the $conditions parameters. + // Include deleted fields if specified in the $conditions parameters. $include_deleted = isset($conditions['include_deleted']) ? $conditions['include_deleted'] : FALSE; unset($conditions['include_deleted']); - $instances = array(); + $fields = array(); - // Get instances stored in configuration. If we are explicitly looking for - // deleted instances only, this can be skipped, because they will be + // Get fields stored in configuration. If we are explicitly looking for + // deleted fields only, this can be skipped, because they will be // retrieved from state below. if (empty($conditions['deleted'])) { if (isset($conditions['entity_type']) && isset($conditions['bundle']) && isset($conditions['field_name'])) { // Optimize for the most frequent case where we do have a specific ID. $id = $conditions['entity_type'] . '.' . $conditions['bundle'] . '.' . $conditions['field_name']; - $instances = $this->loadMultiple(array($id)); + $fields = $this->loadMultiple(array($id)); } else { - // No specific ID, we need to examine all existing instances. - $instances = $this->loadMultiple(); + // No specific ID, we need to examine all existing fields. + $fields = $this->loadMultiple(); } } - // Merge deleted instances (stored in state) if needed. + // Merge deleted fields (stored in state) if needed. if ($include_deleted || !empty($conditions['deleted'])) { - $deleted_instances = $this->state->get('field.instance.deleted') ?: array(); + $deleted_fields = $this->state->get('field.field.deleted') ?: array(); $deleted_storages = $this->state->get('field.storage.deleted') ?: array(); - foreach ($deleted_instances as $id => $config) { - // If the field itself is deleted, inject it directly in the instance. + foreach ($deleted_fields as $id => $config) { + // If the field storage itself is deleted, inject it directly in the field. if (isset($deleted_storages[$config['field_storage_uuid']])) { $config['field_storage'] = $this->entityManager->getStorage('field_storage_config')->create($deleted_storages[$config['field_storage_uuid']]); } - $instances[$id] = $this->create($config); + $fields[$id] = $this->create($config); } } - // Collect matching instances. - $matching_instances = array(); - foreach ($instances as $instance) { + // Collect matching fields. + $matching_fields = array(); + foreach ($fields as $field) { // Some conditions are checked against the field. - $field_storage = $instance->getFieldStorageDefinition(); + $field_storage = $field->getFieldStorageDefinition(); - // Only keep the instance if it matches all conditions. + // Only keep the field if it matches all conditions. foreach ($conditions as $key => $value) { // Extract the actual value against which the condition is checked. switch ($key) { @@ -148,27 +155,27 @@ public function loadByProperties(array $conditions = array()) { break; case 'uuid'; - $checked_value = $instance->uuid(); + $checked_value = $field->uuid(); break; default: - $checked_value = $instance->$key; + $checked_value = $field->$key; break; } - // Skip to the next instance as soon as one condition does not match. + // Skip to the next field as soon as one condition does not match. if ($checked_value != $value) { continue 2; } } - // When returning deleted instances, key the results by UUID since they - // can include several instances with the same ID. - $key = $include_deleted ? $instance->uuid() : $instance->id(); - $matching_instances[$key] = $instance; + // When returning deleted fields, key the results by UUID since they + // can include several fields with the same ID. + $key = $include_deleted ? $field->uuid() : $field->id(); + $matching_fields[$key] = $field; } - return $matching_instances; + return $matching_fields; } } diff --git a/core/modules/field/src/FieldInstanceConfigInterface.php b/core/modules/field/src/FieldInstanceConfigInterface.php deleted file mode 100644 index 3026b4f..0000000 --- a/core/modules/field/src/FieldInstanceConfigInterface.php +++ /dev/null @@ -1,26 +0,0 @@ -randomMachineName()); - $this->field = FieldStorageConfig::create(array( + $this->field_storage = FieldStorageConfig::create(array( 'name' => $field_name, 'entity_type' => 'entity_test', 'type' => 'boolean', @@ -73,15 +73,15 @@ function testBooleanField() { 'off_label' => $off, ), )); - $this->field->save(); - $this->instance = FieldInstanceConfig::create(array( + $this->field_storage->save(); + $this->field = FieldConfig::create(array( 'field_name' => $field_name, 'entity_type' => 'entity_test', 'bundle' => 'entity_test', 'label' => $label, 'required' => TRUE, )); - $this->instance->save(); + $this->field->save(); // Create a form display for the default form mode. entity_get_form_display('entity_test', 'entity_test', 'default') @@ -132,7 +132,7 @@ function testBooleanField() { $this->drupalGet('entity_test/add'); $this->assertFieldByName("{$field_name}[value]", '', 'Widget found.'); $this->assertNoRaw($on); - $this->assertText($this->instance->label()); + $this->assertText($this->field->label()); // Go to the form display page and check if the default settings works as // expected. diff --git a/core/modules/field/src/Tests/Boolean/BooleanItemTest.php b/core/modules/field/src/Tests/Boolean/BooleanItemTest.php index f9198b1..dfa8d4c 100644 --- a/core/modules/field/src/Tests/Boolean/BooleanItemTest.php +++ b/core/modules/field/src/Tests/Boolean/BooleanItemTest.php @@ -24,13 +24,13 @@ class BooleanItemTest extends FieldUnitTestBase { protected function setUp() { parent::setUp(); - // Create an boolean field and instance for validation. + // Create a boolean field and storage for validation. entity_create('field_storage_config', array( 'name' => 'field_boolean', 'entity_type' => 'entity_test', 'type' => 'boolean', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'field_boolean', 'bundle' => 'entity_test', diff --git a/core/modules/field/src/Tests/BulkDeleteTest.php b/core/modules/field/src/Tests/BulkDeleteTest.php index ee099a8..e492ff5 100644 --- a/core/modules/field/src/Tests/BulkDeleteTest.php +++ b/core/modules/field/src/Tests/BulkDeleteTest.php @@ -9,10 +9,10 @@ use Drupal\Core\Entity\ContentEntityDatabaseStorage; use Drupal\Core\Entity\EntityInterface; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** - * Bulk delete fields and instances, and clean up afterwards. + * Bulk delete storages and fields, and clean up afterwards. * * @group field */ @@ -105,7 +105,7 @@ protected function setUp() { entity_test_create_bundle($name, $desc); } - // Create two fields. + // Create two field storages. $field_storage = entity_create('field_storage_config', array( 'name' => 'bf_1', 'entity_type' => $this->entity_type, @@ -123,11 +123,11 @@ protected function setUp() { $field_storage->save(); $this->fieldStorages[] = $field_storage; - // For each bundle, create an instance of each field, and 10 - // entities with values for each field. + // For each bundle, create each field, and 10 entities with values for the + // fields. foreach ($this->bundles as $bundle) { foreach ($this->fieldStorages as $field_storage) { - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $bundle, ))->save(); @@ -148,14 +148,14 @@ protected function setUp() { } /** - * Verify that deleting an instance leaves the field data items in - * the database and that the appropriate Field API functions can - * operate on the deleted data and instance. + * Verify that deleting a field leaves the field data items in the database + * and that the appropriate Field API functions can operate on the deleted + * data and field definition. * - * This tests how EntityFieldQuery interacts with field instance deletion and - * could be moved to FieldCrudTestCase, but depends on this class's setUp(). + * This tests how EntityFieldQuery interacts with field deletion and could be + * moved to FieldCrudTestCase, but depends on this class's setUp(). */ - function testDeleteFieldInstance() { + function testDeleteField() { $bundle = reset($this->bundles); $field_storage = reset($this->fieldStorages); $field_name = $field_storage->name; @@ -167,15 +167,15 @@ function testDeleteFieldInstance() { ->execute(); $this->assertEqual(count($found), 10, 'Correct number of entities found before deleting'); - // Delete the instance. - $instance = FieldInstanceConfig::loadByName($this->entity_type, $bundle, $field_storage->name); - $instance->delete(); + // Delete the field. + $field = FieldConfig::loadByName($this->entity_type, $bundle, $field_storage->name); + $field->delete(); - // The instance still exists, deleted. - $instances = entity_load_multiple_by_properties('field_instance_config', array('field_storage_uuid' => $field_storage->uuid(), 'deleted' => TRUE, 'include_deleted' => TRUE)); - $this->assertEqual(count($instances), 1, 'There is one deleted instance'); - $instance = $instances[$instance->uuid()]; - $this->assertEqual($instance->bundle, $bundle, 'The deleted instance is for the correct bundle'); + // The field still exists, deleted. + $fields = entity_load_multiple_by_properties('field_config', array('field_storage_uuid' => $field_storage->uuid(), 'deleted' => TRUE, 'include_deleted' => TRUE)); + $this->assertEqual(count($fields), 1, 'There is one deleted field'); + $field = $fields[$field->uuid()]; + $this->assertEqual($field->bundle, $bundle, 'The deleted field is for the correct bundle'); // Check that the actual stored content did not change during delete. $schema = ContentEntityDatabaseStorage::_fieldSqlSchema($field_storage); @@ -207,19 +207,19 @@ function testDeleteFieldInstance() { } /** - * Verify that field data items and instances are purged when an - * instance is deleted. + * Verify that field data items and fields are purged when a field storage is + * deleted. */ - function testPurgeInstance() { + function testPurgeField() { // Start recording hook invocations. field_test_memorize(); $bundle = reset($this->bundles); $field_storage = reset($this->fieldStorages); - // Delete the instance. - $instance = FieldInstanceConfig::loadByName($this->entity_type, $bundle, $field_storage->name); - $instance->delete(); + // Delete the field. + $field = FieldConfig::loadByName($this->entity_type, $bundle, $field_storage->name); + $field->delete(); // No field hooks were called. $mem = field_test_memorize(); @@ -249,26 +249,26 @@ function testPurgeInstance() { } $this->checkHooksInvocations($hooks, $actual_hooks); - // The instance still exists, deleted. - $instances = entity_load_multiple_by_properties('field_instance_config', array('field_storage_uuid' => $field_storage->uuid(), 'deleted' => TRUE, 'include_deleted' => TRUE)); - $this->assertEqual(count($instances), 1, 'There is one deleted instance'); + // The field still exists, deleted. + $fields = entity_load_multiple_by_properties('field_config', array('field_storage_uuid' => $field_storage->uuid(), 'deleted' => TRUE, 'include_deleted' => TRUE)); + $this->assertEqual(count($fields), 1, 'There is one deleted field'); - // Purge the instance. + // Purge the field. field_purge_batch($batch_size); - // The instance is gone. - $instances = entity_load_multiple_by_properties('field_instance_config', array('field_storage_uuid' => $field_storage->uuid(), 'deleted' => TRUE, 'include_deleted' => TRUE)); - $this->assertEqual(count($instances), 0, 'The instance is gone'); + // The field is gone. + $fields = entity_load_multiple_by_properties('field_config', array('field_storage_uuid' => $field_storage->uuid(), 'deleted' => TRUE, 'include_deleted' => TRUE)); + $this->assertEqual(count($fields), 0, 'The field is gone'); // The field storage still exists, not deleted, because it has a second - // instance. + // field. $storages = entity_load_multiple_by_properties('field_storage_config', array('uuid' => $field_storage->uuid(), 'include_deleted' => TRUE)); $this->assertTrue(isset($storages[$field_storage->uuid()]), 'The field storage exists and is not deleted'); } /** * Verify that field storages are preserved and purged correctly as multiple - * instances are deleted and purged. + * fields are deleted and purged. */ function testPurgeFieldStorage() { // Start recording hook invocations. @@ -276,10 +276,10 @@ function testPurgeFieldStorage() { $field_storage = reset($this->fieldStorages); - // Delete the first instance. + // Delete the first field. $bundle = reset($this->bundles); - $instance = FieldInstanceConfig::loadByName($this->entity_type, $bundle, $field_storage->name); - $instance->delete(); + $field = FieldConfig::loadByName($this->entity_type, $bundle, $field_storage->name); + $field->delete(); // Assert that FieldItemInterface::delete() was not called yet. $mem = field_test_memorize(); @@ -299,24 +299,24 @@ function testPurgeFieldStorage() { } $this->checkHooksInvocations($hooks, $actual_hooks); - // The instance still exists, deleted. - $instances = entity_load_multiple_by_properties('field_instance_config', array('uuid' => $instance->uuid(), 'include_deleted' => TRUE)); - $this->assertTrue(isset($instances[$instance->uuid()]) && $instances[$instance->uuid()]->deleted, 'The instance exists and is deleted'); + // The field still exists, deleted. + $fields = entity_load_multiple_by_properties('field_config', array('uuid' => $field->uuid(), 'include_deleted' => TRUE)); + $this->assertTrue(isset($fields[$field->uuid()]) && $fields[$field->uuid()]->deleted, 'The field exists and is deleted'); - // Purge again to purge the instance. + // Purge again to purge the field. field_purge_batch(0); - // The instance is gone. - $instances = entity_load_multiple_by_properties('field_instance_config', array('uuid' => $instance->uuid(), 'include_deleted' => TRUE)); - $this->assertEqual(count($instances), 0, 'The instance is purged.'); + // The field is gone. + $fields = entity_load_multiple_by_properties('field_config', array('uuid' => $field->uuid(), 'include_deleted' => TRUE)); + $this->assertEqual(count($fields), 0, 'The field is purged.'); // The field storage still exists, not deleted. $storages = entity_load_multiple_by_properties('field_storage_config', array('uuid' => $field_storage->uuid(), 'include_deleted' => TRUE)); $this->assertTrue(isset($storages[$field_storage->uuid()]) && !$storages[$field_storage->uuid()]->deleted, 'The field storage exists and is not deleted'); - // Delete the second instance. + // Delete the second field. $bundle = next($this->bundles); - $instance = FieldInstanceConfig::loadByName($this->entity_type, $bundle, $field_storage->name); - $instance->delete(); + $field = FieldConfig::loadByName($this->entity_type, $bundle, $field_storage->name); + $field->delete(); // Assert that FieldItemInterface::delete() was not called yet. $mem = field_test_memorize(); @@ -334,18 +334,18 @@ function testPurgeFieldStorage() { } $this->checkHooksInvocations($hooks, $actual_hooks); - // The field storage and instance still exist, deleted. - $instances = entity_load_multiple_by_properties('field_instance_config', array('uuid' => $instance->uuid(), 'include_deleted' => TRUE)); - $this->assertTrue(isset($instances[$instance->uuid()]) && $instances[$instance->uuid()]->deleted, 'The instance exists and is deleted'); + // The field and the storage still exist, deleted. + $fields = entity_load_multiple_by_properties('field_config', array('uuid' => $field->uuid(), 'include_deleted' => TRUE)); + $this->assertTrue(isset($fields[$field->uuid()]) && $fields[$field->uuid()]->deleted, 'The field exists and is deleted'); $storages = entity_load_multiple_by_properties('field_storage_config', array('uuid' => $field_storage->uuid(), 'include_deleted' => TRUE)); $this->assertTrue(isset($storages[$field_storage->uuid()]) && $storages[$field_storage->uuid()]->deleted, 'The field storage exists and is deleted'); - // Purge again to purge the instance and the field storage. + // Purge again to purge the field and the storage. field_purge_batch(0); - // The field storage and instance are gone. - $instances = entity_load_multiple_by_properties('field_instance_config', array('uuid' => $instance->uuid(), 'include_deleted' => TRUE)); - $this->assertEqual(count($instances), 0, 'The instance is purged.'); + // The field and the storage are gone. + $fields = entity_load_multiple_by_properties('field_config', array('uuid' => $field->uuid(), 'include_deleted' => TRUE)); + $this->assertEqual(count($fields), 0, 'The field is purged.'); $storages = entity_load_multiple_by_properties('field_storage_config', array('uuid' => $field_storage->uuid(), 'include_deleted' => TRUE)); $this->assertEqual(count($storages), 0, 'The field storage is purged.'); } diff --git a/core/modules/field/src/Tests/ConfigFieldDefinitionTest.php b/core/modules/field/src/Tests/ConfigFieldDefinitionTest.php index 7841c2b..44e8c89 100644 --- a/core/modules/field/src/Tests/ConfigFieldDefinitionTest.php +++ b/core/modules/field/src/Tests/ConfigFieldDefinitionTest.php @@ -40,15 +40,15 @@ class ConfigFieldDefinitionTest extends FieldUnitTestBase { protected function setUp() { parent::setUp(); - // Create a field and instance of type 'test_field', on the 'entity_test' + // Create a field and a storage of type 'test_field', on the 'entity_test' // entity type. $this->entityType = 'entity_test'; $this->bundle = 'entity_test'; - $this->createFieldWithInstance('', $this->entityType, $this->bundle); + $this->createFieldWithStorage('', $this->entityType, $this->bundle); $this->entityManager = $this->container->get('entity.manager'); - // Create a second instance on 'entity_test_rev'. - $this->createFieldWithInstance('_rev', 'entity_test_rev', 'entity_test_rev'); + // Create a second field on 'entity_test_rev'. + $this->createFieldWithStorage('_rev', 'entity_test_rev', 'entity_test_rev'); } /** @@ -56,10 +56,10 @@ protected function setUp() { */ public function testBundleFieldDefinition() { $definitions = $this->entityManager->getFieldDefinitions($this->entityType, $this->bundle); - $this->assertTrue(isset($definitions[$this->fieldTestData->instance->getName()])); - $this->assertTrue($definitions[$this->fieldTestData->instance->getName()] instanceof FieldDefinitionInterface); - // Make sure no field for the instance on another entity type is exposed. - $this->assertFalse(isset($definitions[$this->fieldTestData->instance_rev->getName()])); + $this->assertTrue(isset($definitions[$this->fieldTestData->field->getName()])); + $this->assertTrue($definitions[$this->fieldTestData->field->getName()] instanceof FieldDefinitionInterface); + // Make sure fields on other entity types are not exposed. + $this->assertFalse(isset($definitions[$this->fieldTestData->field_rev->getName()])); } /** @@ -67,11 +67,10 @@ public function testBundleFieldDefinition() { */ public function testFieldStorageDefinition() { $field_storage_definitions = $this->entityManager->getFieldStorageDefinitions($this->entityType); - $this->assertTrue(isset($field_storage_definitions[$this->fieldTestData->instance->getName()])); - $this->assertTrue($field_storage_definitions[$this->fieldTestData->instance->getName()] instanceof FieldStorageDefinitionInterface); - // Make sure no storage field for the instance on another entity type is - // exposed. - $this->assertFalse(isset($field_storage_definitions[$this->fieldTestData->instance_rev->getName()])); + $this->assertTrue(isset($field_storage_definitions[$this->fieldTestData->field->getName()])); + $this->assertTrue($field_storage_definitions[$this->fieldTestData->field->getName()] instanceof FieldStorageDefinitionInterface); + // Make sure storages on other entity types are not exposed. + $this->assertFalse(isset($field_storage_definitions[$this->fieldTestData->field_rev->getName()])); } } diff --git a/core/modules/field/src/Tests/CrudTest.php b/core/modules/field/src/Tests/CrudTest.php index ec9b4d7..34061f8 100644 --- a/core/modules/field/src/Tests/CrudTest.php +++ b/core/modules/field/src/Tests/CrudTest.php @@ -212,13 +212,13 @@ function testRead() { $fields = entity_load_multiple_by_properties('field_storage_config', array('field_name' => $field_storage_definition['name'], 'type' => 'foo')); $this->assertTrue(empty($fields), 'No field was found.'); - // Create an instance of the field. - $instance_definition = array( + // Create a field from the field storage. + $field_definition = array( 'field_name' => $field_storage_definition['name'], 'entity_type' => 'entity_test', 'bundle' => 'entity_test', ); - entity_create('field_instance_config', $instance_definition)->save(); + entity_create('field_config', $field_definition)->save(); } /** @@ -278,67 +278,67 @@ function testDelete() { // TODO: Also test deletion of the data stored in the field ? // Create two fields (so we can test that only one is deleted). - $field = array( + $field_storage_definition = array( 'name' => 'field_1', 'type' => 'test_field', 'entity_type' => 'entity_test', ); - entity_create('field_storage_config', $field)->save(); - $another_field = array( + entity_create('field_storage_config', $field_storage_definition)->save(); + $another_field_storage_definition = array( 'name' => 'field_2', 'type' => 'test_field', 'entity_type' => 'entity_test', ); - entity_create('field_storage_config', $another_field)->save(); + entity_create('field_storage_config', $another_field_storage_definition)->save(); - // Create instances for each. - $instance_definition = array( - 'field_name' => $field['name'], + // Create fields for each. + $field_definition = array( + 'field_name' => $field_storage_definition['name'], 'entity_type' => 'entity_test', 'bundle' => 'entity_test', ); - entity_create('field_instance_config', $instance_definition)->save(); - $another_instance_definition = $instance_definition; - $another_instance_definition['field_name'] = $another_field['name']; - entity_create('field_instance_config', $another_instance_definition)->save(); + entity_create('field_config', $field_definition)->save(); + $another_field_definition = $field_definition; + $another_field_definition['field_name'] = $another_field_storage_definition['name']; + entity_create('field_config', $another_field_definition)->save(); // Test that the first field is not deleted, and then delete it. - $field_storage = current(entity_load_multiple_by_properties('field_storage_config', array('field_name' => $field['name'], 'include_deleted' => TRUE))); - $this->assertTrue(!empty($field_storage) && empty($field_storage->deleted), 'A new field is not marked for deletion.'); - FieldStorageConfig::loadByName('entity_test', $field['name'])->delete(); + $field_storage = current(entity_load_multiple_by_properties('field_storage_config', array('field_name' => $field_storage_definition['name'], 'include_deleted' => TRUE))); + $this->assertTrue(!empty($field_storage) && empty($field_storage->deleted), 'A new storage is not marked for deletion.'); + FieldStorageConfig::loadByName('entity_test', $field_storage_definition['name'])->delete(); // Make sure that the field is marked as deleted when it is specifically // loaded. - $field_storage = current(entity_load_multiple_by_properties('field_storage_config', array('field_name' => $field['name'], 'include_deleted' => TRUE))); - $this->assertTrue(!empty($field_storage->deleted), 'A deleted field is marked for deletion.'); + $field_storage = current(entity_load_multiple_by_properties('field_storage_config', array('field_name' => $field_storage_definition['name'], 'include_deleted' => TRUE))); + $this->assertTrue(!empty($field_storage->deleted), 'A deleted storage is marked for deletion.'); - // Make sure that this field's instance is marked as deleted when it is + // Make sure that this field is marked as deleted when it is // specifically loaded. - $instance = current(entity_load_multiple_by_properties('field_instance_config', array('entity_type' => 'entity_test', 'field_name' => $instance_definition['field_name'], 'bundle' => $instance_definition['bundle'], 'include_deleted' => TRUE))); - $this->assertTrue(!empty($instance->deleted), 'An instance for a deleted field is marked for deletion.'); + $field = current(entity_load_multiple_by_properties('field_config', array('entity_type' => 'entity_test', 'field_name' => $field_definition['field_name'], 'bundle' => $field_definition['bundle'], 'include_deleted' => TRUE))); + $this->assertTrue(!empty($field->deleted), 'A field whose storage was deleted is marked for deletion.'); + + // Try to load the storage normally and make sure it does not show up. + $field_storage = entity_load('field_storage_config', 'entity_test.' . $field_storage_definition['name']); + $this->assertTrue(empty($field_storage), 'A deleted storage is not loaded by default.'); // Try to load the field normally and make sure it does not show up. - $field_storage = entity_load('field_storage_config', 'entity_test.' . $field['name']); - $this->assertTrue(empty($field_storage), 'A deleted field is not loaded by default.'); + $field = entity_load('field_config', 'entity_test.' . '.' . $field_definition['bundle'] . '.' . $field_definition['field_name']); + $this->assertTrue(empty($field), 'A field whose storage was deleted is not loaded by default.'); - // Try to load the instance normally and make sure it does not show up. - $instance = entity_load('field_instance_config', 'entity_test.' . '.' . $instance_definition['bundle'] . '.' . $instance_definition['field_name']); - $this->assertTrue(empty($instance), 'An instance for a deleted field is not loaded by default.'); - - // Make sure the other field (and its field instance) are not deleted. - $another_field_storage = entity_load('field_storage_config', 'entity_test.' . $another_field['name']); - $this->assertTrue(!empty($another_field_storage) && empty($another_field_storage->deleted), 'A non-deleted field is not marked for deletion.'); - $another_instance = entity_load('field_instance_config', 'entity_test.' . $another_instance_definition['bundle'] . '.' . $another_instance_definition['field_name']); - $this->assertTrue(!empty($another_instance) && empty($another_instance->deleted), 'An instance of a non-deleted field is not marked for deletion.'); + // Make sure the other field and its storage are not deleted. + $another_field_storage = entity_load('field_storage_config', 'entity_test.' . $another_field_storage_definition['name']); + $this->assertTrue(!empty($another_field_storage) && empty($another_field_storage->deleted), 'A non-deleted storage is not marked for deletion.'); + $another_field = entity_load('field_config', 'entity_test.' . $another_field_definition['bundle'] . '.' . $another_field_definition['field_name']); + $this->assertTrue(!empty($another_field) && empty($another_field->deleted), 'A field whose storage was not deleted is not marked for deletion.'); // Try to create a new field the same name as a deleted field and // write data into it. - entity_create('field_storage_config', $field)->save(); - entity_create('field_instance_config', $instance_definition)->save(); - $field_storage = entity_load('field_storage_config', 'entity_test.' . $field['name']); - $this->assertTrue(!empty($field_storage) && empty($field_storage->deleted), 'A new field with a previously used name is created.'); - $instance = entity_load('field_instance_config', 'entity_test.' . $instance_definition['bundle'] . '.' . $instance_definition['field_name'] ); - $this->assertTrue(!empty($instance) && empty($instance->deleted), 'A new instance for a previously used field name is created.'); + entity_create('field_storage_config', $field_storage_definition)->save(); + entity_create('field_config', $field_definition)->save(); + $field_storage = entity_load('field_storage_config', 'entity_test.' . $field_storage_definition['name']); + $this->assertTrue(!empty($field_storage) && empty($field_storage->deleted), 'A new storage with a previously used name is created.'); + $field = entity_load('field_config', 'entity_test.' . $field_definition['bundle'] . '.' . $field_definition['field_name'] ); + $this->assertTrue(!empty($field) && empty($field->deleted), 'A new field for a previously used field name is created.'); // Save an entity with data for the field $entity = entity_create('entity_test'); @@ -386,12 +386,12 @@ function testUpdate() { 'cardinality' => $cardinality, )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'entity_type' => 'entity_test', 'bundle' => 'entity_test', )); - $instance->save(); + $field->save(); do { $entity = entity_create('entity_test'); diff --git a/core/modules/field/src/Tests/DisplayApiTest.php b/core/modules/field/src/Tests/DisplayApiTest.php index 623419b..1a1abfd 100644 --- a/core/modules/field/src/Tests/DisplayApiTest.php +++ b/core/modules/field/src/Tests/DisplayApiTest.php @@ -59,7 +59,7 @@ class DisplayApiTest extends FieldUnitTestBase { protected function setUp() { parent::setUp(); - // Create a field and instance. + // Create a field and its storage. $this->field_name = 'test_field'; $this->label = $this->randomMachineName(); $this->cardinality = 4; @@ -70,7 +70,7 @@ protected function setUp() { 'type' => 'test_field', 'cardinality' => $this->cardinality, ); - $instance = array( + $field = array( 'field_name' => $this->field_name, 'entity_type' => 'entity_test', 'bundle' => 'entity_test', @@ -93,14 +93,14 @@ protected function setUp() { ); entity_create('field_storage_config', $field_storage)->save(); - entity_create('field_instance_config', $instance)->save(); + entity_create('field_config', $field)->save(); // Create a display for the default view mode. - entity_get_display($instance['entity_type'], $instance['bundle'], 'default') + entity_get_display($field['entity_type'], $field['bundle'], 'default') ->setComponent($this->field_name, $this->display_options['default']) ->save(); // Create a display for the teaser view mode. entity_create('view_mode', array('id' => 'entity_test.teaser', 'targetEntityType' => 'entity_test'))->save(); - entity_get_display($instance['entity_type'], $instance['bundle'], 'teaser') + entity_get_display($field['entity_type'], $field['bundle'], 'teaser') ->setComponent($this->field_name, $this->display_options['teaser']) ->save(); @@ -242,8 +242,7 @@ function testFieldItemView() { $this->assertText($setting . '|' . $value['value'] . '|' . ($value['value'] + 1), format_string('Value @delta was displayed with expected setting.', array('@delta' => $delta))); } - // View mode: check that display settings specified in the instance are - // used. + // View mode: check that display settings specified in the field are used. $setting = $this->display_options['teaser']['settings']['test_formatter_setting']; foreach ($this->values as $delta => $value) { $item = $this->entity->{$this->field_name}[$delta]; diff --git a/core/modules/field/src/Tests/Email/EmailFieldTest.php b/core/modules/field/src/Tests/Email/EmailFieldTest.php index 738c2d7..4b67c79 100644 --- a/core/modules/field/src/Tests/Email/EmailFieldTest.php +++ b/core/modules/field/src/Tests/Email/EmailFieldTest.php @@ -31,11 +31,11 @@ class EmailFieldTest extends WebTestBase { protected $fieldStorage; /** - * The instance used in this test class. + * The field used in this test class. * - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; protected function setUp() { parent::setUp(); @@ -60,11 +60,11 @@ function testEmailField() { 'type' => 'email', )); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', )); - $this->instance->save(); + $this->field->save(); // Create a form display for the default form mode. entity_get_form_display('entity_test', 'entity_test', 'default') diff --git a/core/modules/field/src/Tests/Email/EmailItemTest.php b/core/modules/field/src/Tests/Email/EmailItemTest.php index 1ec0a08..6389b7d 100644 --- a/core/modules/field/src/Tests/Email/EmailItemTest.php +++ b/core/modules/field/src/Tests/Email/EmailItemTest.php @@ -21,13 +21,13 @@ class EmailItemTest extends FieldUnitTestBase { protected function setUp() { parent::setUp(); - // Create an email field and instance for validation. + // Create an email field storage and field for validation. entity_create('field_storage_config', array( 'name' => 'field_email', 'entity_type' => 'entity_test', 'type' => 'email', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'field_email', 'bundle' => 'entity_test', diff --git a/core/modules/field/src/Tests/FieldAccessTest.php b/core/modules/field/src/Tests/FieldAccessTest.php index 2a38031..2c36cab 100644 --- a/core/modules/field/src/Tests/FieldAccessTest.php +++ b/core/modules/field/src/Tests/FieldAccessTest.php @@ -51,12 +51,12 @@ protected function setUp() { 'type' => 'text', ); entity_create('field_storage_config', $field_storage)->save(); - $instance = array( + $field = array( 'field_name' => $field_storage['name'], 'entity_type' => 'node', 'bundle' => $content_type, ); - entity_create('field_instance_config', $instance)->save(); + entity_create('field_config', $field)->save(); // Assign display properties for the 'default' and 'teaser' view modes. foreach (array('default', 'teaser') as $view_mode) { diff --git a/core/modules/field/src/Tests/FieldAttachOtherTest.php b/core/modules/field/src/Tests/FieldAttachOtherTest.php index ec5dd88..01e8a0c 100644 --- a/core/modules/field/src/Tests/FieldAttachOtherTest.php +++ b/core/modules/field/src/Tests/FieldAttachOtherTest.php @@ -21,14 +21,14 @@ class FieldAttachOtherTest extends FieldUnitTestBase { protected function setUp() { parent::setUp(); $this->installEntitySchema('entity_test_rev'); - $this->createFieldWithInstance(); + $this->createFieldWithStorage(); } /** * Test rendering fields with EntityDisplay build(). */ function testEntityDisplayBuild() { - $this->createFieldWithInstance('_2'); + $this->createFieldWithStorage('_2'); $entity_type = 'entity_test'; $entity_init = entity_create($entity_type); @@ -66,11 +66,11 @@ function testEntityDisplayBuild() { // View all fields. $content = $display->build($entity); $this->render($content); - $this->assertRaw($this->fieldTestData->instance->getLabel(), "First field's label is displayed."); + $this->assertRaw($this->fieldTestData->field->getLabel(), "First field's label is displayed."); foreach ($values as $delta => $value) { $this->assertRaw("$formatter_setting|{$value['value']}", "Value $delta is displayed, formatter settings are applied."); } - $this->assertRaw($this->fieldTestData->instance_2->getLabel(), "Second field's label is displayed."); + $this->assertRaw($this->fieldTestData->field_2->getLabel(), "Second field's label is displayed."); foreach ($values_2 as $delta => $value) { $this->assertRaw("$formatter_setting_2|{$value['value']}", "Value $delta is displayed, formatter settings are applied."); } @@ -81,14 +81,14 @@ function testEntityDisplayBuild() { $display->setComponent($this->fieldTestData->field_name, $display_options); $content = $display->build($entity); $this->render($content); - $this->assertNoRaw($this->fieldTestData->instance->getLabel(), "Hidden label: label is not displayed."); + $this->assertNoRaw($this->fieldTestData->field->getLabel(), "Hidden label: label is not displayed."); // Field hidden. $entity = clone($entity_init); $display->removeComponent($this->fieldTestData->field_name); $content = $display->build($entity); $this->render($content); - $this->assertNoRaw($this->fieldTestData->instance->getLabel(), "Hidden field: label is not displayed."); + $this->assertNoRaw($this->fieldTestData->field->getLabel(), "Hidden field: label is not displayed."); foreach ($values as $delta => $value) { $this->assertNoRaw("$formatter_setting|{$value['value']}", "Hidden field: value $delta is not displayed."); } @@ -164,7 +164,7 @@ function testEntityDisplayViewMultiple() { */ function testEntityCache() { // Initialize random values and a test entity. - $entity_init = entity_create('entity_test', array('type' => $this->fieldTestData->instance->bundle)); + $entity_init = entity_create('entity_test', array('type' => $this->fieldTestData->field->bundle)); $values = $this->_generateTestFieldValues($this->fieldTestData->field_storage->getCardinality()); // Non-cacheable entity type. @@ -183,7 +183,7 @@ function testEntityCache() { // Cacheable entity type. $entity_type = 'entity_test_rev'; - $this->createFieldWithInstance('_2', $entity_type); + $this->createFieldWithStorage('_2', $entity_type); $entity_init = entity_create($entity_type, array( 'type' => $entity_type, @@ -244,19 +244,19 @@ function testEntityCache() { * widgets show up. */ function testEntityFormDisplayBuildForm() { - $this->createFieldWithInstance('_2'); + $this->createFieldWithStorage('_2'); $entity_type = 'entity_test'; - $entity = entity_create($entity_type, array('id' => 1, 'revision_id' => 1, 'type' => $this->fieldTestData->instance->bundle)); + $entity = entity_create($entity_type, array('id' => 1, 'revision_id' => 1, 'type' => $this->fieldTestData->field->bundle)); // Test generating widgets for all fields. - $display = entity_get_form_display($entity_type, $this->fieldTestData->instance->bundle, 'default'); + $display = entity_get_form_display($entity_type, $this->fieldTestData->field->bundle, 'default'); $form = array(); $form_state = new FormState(); $display->buildForm($entity, $form, $form_state); - $this->assertEqual($form[$this->fieldTestData->field_name]['widget']['#title'], $this->fieldTestData->instance->getLabel(), "First field's form title is {$this->fieldTestData->instance->getLabel()}"); - $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget']['#title'], $this->fieldTestData->instance_2->getLabel(), "Second field's form title is {$this->fieldTestData->instance_2->getLabel()}"); + $this->assertEqual($form[$this->fieldTestData->field_name]['widget']['#title'], $this->fieldTestData->field->getLabel(), "First field's form title is {$this->fieldTestData->field->getLabel()}"); + $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget']['#title'], $this->fieldTestData->field_2->getLabel(), "Second field's form title is {$this->fieldTestData->field_2->getLabel()}"); for ($delta = 0; $delta < $this->fieldTestData->field_storage->getCardinality(); $delta++) { // field_test_widget uses 'textfield' $this->assertEqual($form[$this->fieldTestData->field_name]['widget'][$delta]['value']['#type'], 'textfield', "First field's form delta $delta widget is textfield"); @@ -267,7 +267,7 @@ function testEntityFormDisplayBuildForm() { } // Test generating widgets for all fields. - $display = entity_get_form_display($entity_type, $this->fieldTestData->instance->bundle, 'default'); + $display = entity_get_form_display($entity_type, $this->fieldTestData->field->bundle, 'default'); foreach ($display->getComponents() as $name => $options) { if ($name != $this->fieldTestData->field_name_2) { $display->removeComponent($name); @@ -278,7 +278,7 @@ function testEntityFormDisplayBuildForm() { $display->buildForm($entity, $form, $form_state); $this->assertFalse(isset($form[$this->fieldTestData->field_name]), 'The first field does not exist in the form'); - $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget']['#title'], $this->fieldTestData->instance_2->getLabel(), "Second field's form title is {$this->fieldTestData->instance_2->getLabel()}"); + $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget']['#title'], $this->fieldTestData->field_2->getLabel(), "Second field's form title is {$this->fieldTestData->field_2->getLabel()}"); for ($delta = 0; $delta < $this->fieldTestData->field_storage_2->getCardinality(); $delta++) { // field_test_widget uses 'textfield' $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget'][$delta]['value']['#type'], 'textfield', "Second field's form delta $delta widget is textfield"); @@ -289,13 +289,13 @@ function testEntityFormDisplayBuildForm() { * Tests \Drupal\Core\Entity\Display\EntityFormDisplayInterface::extractFormValues(). */ function testEntityFormDisplayExtractFormValues() { - $this->createFieldWithInstance('_2'); + $this->createFieldWithStorage('_2'); $entity_type = 'entity_test'; - $entity_init = entity_create($entity_type, array('id' => 1, 'revision_id' => 1, 'type' => $this->fieldTestData->instance->bundle)); + $entity_init = entity_create($entity_type, array('id' => 1, 'revision_id' => 1, 'type' => $this->fieldTestData->field->bundle)); // Build the form for all fields. - $display = entity_get_form_display($entity_type, $this->fieldTestData->instance->bundle, 'default'); + $display = entity_get_form_display($entity_type, $this->fieldTestData->field->bundle, 'default'); $form = array(); $form_state = new FormState(); $display->buildForm($entity_init, $form, $form_state); diff --git a/core/modules/field/src/Tests/FieldAttachStorageTest.php b/core/modules/field/src/Tests/FieldAttachStorageTest.php index 42c607b..dbcdfaa 100644 --- a/core/modules/field/src/Tests/FieldAttachStorageTest.php +++ b/core/modules/field/src/Tests/FieldAttachStorageTest.php @@ -6,7 +6,7 @@ */ namespace Drupal\field\Tests; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Tests storage-related Field Attach API functions. @@ -29,7 +29,7 @@ protected function setUp() { */ function testFieldAttachSaveLoad() { $entity_type = 'entity_test_rev'; - $this->createFieldWithInstance('', $entity_type); + $this->createFieldWithStorage('', $entity_type); $cardinality = $this->fieldTestData->field_storage->getCardinality(); // TODO : test empty values filtering and "compression" (store consecutive deltas). @@ -102,7 +102,7 @@ function testFieldAttachLoadMultiple() { $field_storage->save(); $field_ids[$i] = $field_storage->uuid(); foreach ($field_bundles_map[$i] as $bundle) { - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_names[$i], 'entity_type' => $entity_type, 'bundle' => $bundles[$bundle], @@ -145,7 +145,7 @@ function testFieldAttachLoadMultiple() { */ function testFieldAttachSaveEmptyData() { $entity_type = 'entity_test'; - $this->createFieldWithInstance('', $entity_type); + $this->createFieldWithStorage('', $entity_type); $entity_init = entity_create($entity_type, array('id' => 1)); @@ -191,15 +191,15 @@ function testFieldAttachSaveEmptyData() { */ function testFieldAttachSaveEmptyDataDefaultValue() { $entity_type = 'entity_test_rev'; - $this->createFieldWithInstance('', $entity_type); + $this->createFieldWithStorage('', $entity_type); // Add a default value function. - $this->fieldTestData->instance->default_value_function = 'field_test_default_value'; - $this->fieldTestData->instance->save(); + $this->fieldTestData->field->default_value_function = 'field_test_default_value'; + $this->fieldTestData->field->save(); // Verify that fields are populated with default values. $entity_init = entity_create($entity_type, array('id' => 1, 'revision_id' => 1)); - $default = field_test_default_value($entity_init, $this->fieldTestData->instance); + $default = field_test_default_value($entity_init, $this->fieldTestData->field); $this->assertEqual($entity_init->{$this->fieldTestData->field_name}->getValue(), $default, 'Default field value correctly populated.'); // Insert: Field is NULL. @@ -220,9 +220,9 @@ function testFieldAttachSaveEmptyDataDefaultValue() { */ function testFieldAttachDelete() { $entity_type = 'entity_test_rev'; - $this->createFieldWithInstance('', $entity_type); + $this->createFieldWithStorage('', $entity_type); $cardinality = $this->fieldTestData->field_storage->getCardinality(); - $entity = entity_create($entity_type, array('type' => $this->fieldTestData->instance->bundle)); + $entity = entity_create($entity_type, array('type' => $this->fieldTestData->field->bundle)); $vids = array(); // Create revision 0 @@ -278,19 +278,19 @@ function testFieldAttachDelete() { */ function testEntityCreateRenameBundle() { $entity_type = 'entity_test_rev'; - $this->createFieldWithInstance('', $entity_type); + $this->createFieldWithStorage('', $entity_type); $cardinality = $this->fieldTestData->field_storage->getCardinality(); // Create a new bundle. $new_bundle = 'test_bundle_' . drupal_strtolower($this->randomMachineName()); entity_test_create_bundle($new_bundle, NULL, $entity_type); - // Add an instance to that bundle. - $this->fieldTestData->instance_definition['bundle'] = $new_bundle; - entity_create('field_instance_config', $this->fieldTestData->instance_definition)->save(); + // Add a field to that bundle. + $this->fieldTestData->field_definition['bundle'] = $new_bundle; + entity_create('field_config', $this->fieldTestData->field_definition)->save(); // Save an entity with data in the field. - $entity = entity_create($entity_type, array('type' => $this->fieldTestData->instance->bundle)); + $entity = entity_create($entity_type, array('type' => $this->fieldTestData->field->bundle)); $values = $this->_generateTestFieldValues($cardinality); $entity->{$this->fieldTestData->field_name} = $values; @@ -300,11 +300,11 @@ function testEntityCreateRenameBundle() { // Rename the bundle. $new_bundle = 'test_bundle_' . drupal_strtolower($this->randomMachineName()); - entity_test_rename_bundle($this->fieldTestData->instance_definition['bundle'], $new_bundle, $entity_type); + entity_test_rename_bundle($this->fieldTestData->field_definition['bundle'], $new_bundle, $entity_type); - // Check that the instance definition has been updated. - $this->fieldTestData->instance = FieldInstanceConfig::loadByName($entity_type, $new_bundle, $this->fieldTestData->field_name); - $this->assertIdentical($this->fieldTestData->instance->bundle, $new_bundle, "Bundle name has been updated in the instance."); + // Check that the field definition has been updated. + $this->fieldTestData->field = FieldConfig::loadByName($entity_type, $new_bundle, $this->fieldTestData->field_name); + $this->assertIdentical($this->fieldTestData->field->bundle, $new_bundle, "Bundle name has been updated in the field."); // Verify the field data is present on load. $controller = $this->container->get('entity.manager')->getStorage($entity->getEntityTypeId()); @@ -318,15 +318,15 @@ function testEntityCreateRenameBundle() { */ function testEntityDeleteBundle() { $entity_type = 'entity_test_rev'; - $this->createFieldWithInstance('', $entity_type); + $this->createFieldWithStorage('', $entity_type); // Create a new bundle. $new_bundle = 'test_bundle_' . drupal_strtolower($this->randomMachineName()); entity_test_create_bundle($new_bundle, NULL, $entity_type); - // Add an instance to that bundle. - $this->fieldTestData->instance_definition['bundle'] = $new_bundle; - entity_create('field_instance_config', $this->fieldTestData->instance_definition)->save(); + // Add a field to that bundle. + $this->fieldTestData->field_definition['bundle'] = $new_bundle; + entity_create('field_config', $this->fieldTestData->field_definition)->save(); // Create a second field for the test bundle $field_name = drupal_strtolower($this->randomMachineName() . '_field_name'); @@ -337,18 +337,18 @@ function testEntityDeleteBundle() { 'cardinality' => 1, ); entity_create('field_storage_config', $field_storage)->save(); - $instance = array( + $field = array( 'field_name' => $field_name, 'entity_type' => $entity_type, - 'bundle' => $this->fieldTestData->instance->bundle, + 'bundle' => $this->fieldTestData->field->bundle, 'label' => $this->randomMachineName() . '_label', 'description' => $this->randomMachineName() . '_description', 'weight' => mt_rand(0, 127), ); - entity_create('field_instance_config', $instance)->save(); + entity_create('field_config', $field)->save(); // Save an entity with data for both fields - $entity = entity_create($entity_type, array('type' => $this->fieldTestData->instance->bundle)); + $entity = entity_create($entity_type, array('type' => $this->fieldTestData->field->bundle)); $values = $this->_generateTestFieldValues($this->fieldTestData->field_storage->getCardinality()); $entity->{$this->fieldTestData->field_name} = $values; $entity->{$field_name} = $this->_generateTestFieldValues(1); @@ -359,7 +359,7 @@ function testEntityDeleteBundle() { $this->assertEqual(count($entity->{$field_name}), 1, 'Second field got loaded'); // Delete the bundle. - entity_test_delete_bundle($this->fieldTestData->instance->bundle, $entity_type); + entity_test_delete_bundle($this->fieldTestData->field->bundle, $entity_type); // Verify no data gets loaded $controller = $this->container->get('entity.manager')->getStorage($entity->getEntityTypeId()); @@ -369,9 +369,9 @@ function testEntityDeleteBundle() { $this->assertTrue(empty($entity->{$this->fieldTestData->field_name}), 'No data for first field'); $this->assertTrue(empty($entity->{$field_name}), 'No data for second field'); - // Verify that the instances are gone. - $this->assertFalse(entity_load('field_instance_config', 'entity_test.' . $this->fieldTestData->instance->bundle . '.' . $this->fieldTestData->field_name), "First field is deleted"); - $this->assertFalse(entity_load('field_instance_config', 'entity_test.' . $instance['bundle']. '.' . $field_name), "Second field is deleted"); + // Verify that the fields are gone. + $this->assertFalse(entity_load('field_config', 'entity_test.' . $this->fieldTestData->field->bundle . '.' . $this->fieldTestData->field_name), "First field is deleted"); + $this->assertFalse(entity_load('field_config', 'entity_test.' . $field['bundle']. '.' . $field_name), "Second field is deleted"); } } diff --git a/core/modules/field/src/Tests/FieldCrudTest.php b/core/modules/field/src/Tests/FieldCrudTest.php new file mode 100644 index 0000000..9e682ff --- /dev/null +++ b/core/modules/field/src/Tests/FieldCrudTest.php @@ -0,0 +1,221 @@ +fieldStorageDefinition = array( + 'name' => drupal_strtolower($this->randomMachineName()), + 'entity_type' => 'entity_test', + 'type' => 'test_field', + ); + $this->fieldStorage = entity_create('field_storage_config', $this->fieldStorageDefinition); + $this->fieldStorage->save(); + $this->fieldDefinition = array( + 'field_name' => $this->fieldStorage->getName(), + 'entity_type' => 'entity_test', + 'bundle' => 'entity_test', + ); + } + + // TODO : test creation with + // - a full fledged $field structure, check that all the values are there + // - a minimal $field structure, check all default values are set + // defer actual $field comparison to a helper function, used for the two cases above, + // and for testUpdateField + + /** + * Test the creation of a field. + */ + function testCreateField() { + $field = entity_create('field_config', $this->fieldDefinition); + $field->save(); + + // Read the configuration. Check against raw configuration data rather than + // the loaded ConfigEntity, to be sure we check that the defaults are + // applied on write. + $config = \Drupal::config('field.field.' . $field->id())->get(); + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); + + // Check that default values are set. + $this->assertEqual($config['required'], FALSE, 'Required defaults to false.'); + $this->assertIdentical($config['label'], $this->fieldDefinition['field_name'], 'Label defaults to field name.'); + $this->assertIdentical($config['description'], '', 'Description defaults to empty string.'); + + // Check that default settings are set. + $this->assertEqual($config['settings'], $field_type_manager->getDefaultFieldSettings($this->fieldStorageDefinition['type']) , 'Default field settings have been written.'); + + // Check that the denormalized 'field_type' was properly written. + $this->assertEqual($config['field_type'], $this->fieldStorageDefinition['type']); + + // Guarantee that the field/bundle combination is unique. + try { + entity_create('field_config', $this->fieldDefinition)->save(); + $this->fail(t('Cannot create two fields with the same field / bundle combination.')); + } + catch (EntityStorageException $e) { + $this->pass(t('Cannot create two fields with the same field / bundle combination.')); + } + + // Check that the specified field exists. + try { + $this->fieldDefinition['field_name'] = $this->randomMachineName(); + entity_create('field_config', $this->fieldDefinition)->save(); + $this->fail(t('Cannot create a field with a non-existing storage.')); + } + catch (FieldException $e) { + $this->pass(t('Cannot create a field with a non-existing storage.')); + } + + // TODO: test other failures. + } + + /** + * Test reading back a field definition. + */ + function testReadField() { + entity_create('field_config', $this->fieldDefinition)->save(); + + // Read the field back. + $field = entity_load('field_config', 'entity_test.' . $this->fieldDefinition['bundle'] . '.' . $this->fieldDefinition['field_name']); + $this->assertTrue($this->fieldDefinition['field_name'] == $field->getName(), 'The field was properly read.'); + $this->assertTrue($this->fieldDefinition['entity_type'] == $field->entity_type, 'The field was properly read.'); + $this->assertTrue($this->fieldDefinition['bundle'] == $field->bundle, 'The field was properly read.'); + } + + /** + * Test the update of a field. + */ + function testUpdateField() { + entity_create('field_config', $this->fieldDefinition)->save(); + + // Check that basic changes are saved. + $field = entity_load('field_config', 'entity_test.' . $this->fieldDefinition['bundle'] . '.' . $this->fieldDefinition['field_name']); + $field->required = !$field->isRequired(); + $field->label = $this->randomMachineName(); + $field->description = $this->randomMachineName(); + $field->settings['test_field_setting'] = $this->randomMachineName(); + $field->save(); + + $field_new = entity_load('field_config', 'entity_test.' . $this->fieldDefinition['bundle'] . '.' . $this->fieldDefinition['field_name']); + $this->assertEqual($field->isRequired(), $field_new->isRequired(), '"required" change is saved'); + $this->assertEqual($field->getLabel(), $field_new->getLabel(), '"label" change is saved'); + $this->assertEqual($field->getDescription(), $field_new->getDescription(), '"description" change is saved'); + + // TODO: test failures. + } + + /** + * Test the deletion of a field. + */ + function testDeleteField() { + // TODO: Test deletion of the data stored in the field also. + // Need to check that data for a 'deleted' field / storage doesn't get loaded + // Need to check data marked deleted is cleaned on cron (not implemented yet...) + + // Create two fields for the same field storage so we can test that only one + // is deleted. + entity_create('field_config', $this->fieldDefinition)->save(); + $another_field_definition = $this->fieldDefinition; + $another_field_definition['bundle'] .= '_another_bundle'; + entity_test_create_bundle($another_field_definition['bundle']); + entity_create('field_config', $another_field_definition)->save(); + + // Test that the first field is not deleted, and then delete it. + $field = current(entity_load_multiple_by_properties('field_config', array('entity_type' => 'entity_test', 'field_name' => $this->fieldDefinition['field_name'], 'bundle' => $this->fieldDefinition['bundle'], 'include_deleted' => TRUE))); + $this->assertTrue(!empty($field) && empty($field->deleted), 'A new field is not marked for deletion.'); + $field->delete(); + + // Make sure the field is marked as deleted when it is specifically loaded. + $field = current(entity_load_multiple_by_properties('field_config', array('entity_type' => 'entity_test', 'field_name' => $this->fieldDefinition['field_name'], 'bundle' => $this->fieldDefinition['bundle'], 'include_deleted' => TRUE))); + $this->assertTrue(!empty($field->deleted), 'A deleted field is marked for deletion.'); + + // Try to load the field normally and make sure it does not show up. + $field = entity_load('field_config', 'entity_test.' . '.' . $this->fieldDefinition['bundle'] . '.' . $this->fieldDefinition['field_name']); + $this->assertTrue(empty($field), 'A deleted field is not loaded by default.'); + + // Make sure the other field is not deleted. + $another_field = entity_load('field_config', 'entity_test.' . $another_field_definition['bundle'] . '.' . $another_field_definition['field_name']); + $this->assertTrue(!empty($another_field) && empty($another_field->deleted), 'A non-deleted field is not marked for deletion.'); + } + + /** + * Tests the cross deletion behavior between field storages and fields. + */ + function testDeleteFieldCrossDeletion() { + $field_definition_2 = $this->fieldDefinition; + $field_definition_2['bundle'] .= '_another_bundle'; + entity_test_create_bundle($field_definition_2['bundle']); + + // Check that deletion of a field storage deletes its fields. + $field_storage = $this->fieldStorage; + entity_create('field_config', $this->fieldDefinition)->save(); + entity_create('field_config', $field_definition_2)->save(); + $field_storage->delete(); + $this->assertFalse(FieldConfig::loadByName('entity_test', $this->fieldDefinition['bundle'], $field_storage->name)); + $this->assertFalse(FieldConfig::loadByName('entity_test', $field_definition_2['bundle'], $field_storage->name)); + + // Chack that deletion of the last field deletes the storage. + $field_storage = entity_create('field_storage_config', $this->fieldStorageDefinition); + $field_storage->save(); + $field = entity_create('field_config', $this->fieldDefinition); + $field->save(); + $field_2 = entity_create('field_config', $field_definition_2); + $field_2->save(); + $field->delete(); + $this->assertTrue(FieldStorageConfig::loadByName('entity_test', $field_storage->name)); + $field_2->delete(); + $this->assertFalse(FieldStorageConfig::loadByName('entity_test', $field_storage->name)); + + // Check that deletion of all fields using a storage simultaneously deletes + // the storage. + $field_storage = entity_create('field_storage_config', $this->fieldStorageDefinition); + $field_storage->save(); + $field = entity_create('field_config', $this->fieldDefinition); + $field->save(); + $field_2 = entity_create('field_config', $field_definition_2); + $field_2->save(); + $this->container->get('entity.manager')->getStorage('field_config')->delete(array($field, $field_2)); + $this->assertFalse(FieldStorageConfig::loadByName('entity_test', $field_storage->name)); + } + +} diff --git a/core/modules/field/src/Tests/FieldDataCountTest.php b/core/modules/field/src/Tests/FieldDataCountTest.php index 1a57fc9..90e0400 100644 --- a/core/modules/field/src/Tests/FieldDataCountTest.php +++ b/core/modules/field/src/Tests/FieldDataCountTest.php @@ -46,7 +46,7 @@ public function testEntityCountAndHasData() { 'cardinality' => 2, )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', ))->save(); diff --git a/core/modules/field/src/Tests/FieldImportChangeTest.php b/core/modules/field/src/Tests/FieldImportChangeTest.php index fce8d0e..6188846 100644 --- a/core/modules/field/src/Tests/FieldImportChangeTest.php +++ b/core/modules/field/src/Tests/FieldImportChangeTest.php @@ -8,7 +8,7 @@ namespace Drupal\field\Tests; /** - * Update field and instances during config change method invocation. + * Update field storage and fields during config change method invocation. * * @group field */ @@ -22,12 +22,12 @@ class FieldImportChangeTest extends FieldUnitTestBase { public static $modules = array('field_test_config'); /** - * Tests importing an updated field instance. + * Tests importing an updated field. */ function testImportChange() { - $field_id = 'field_test_import'; - $instance_id = "entity_test.entity_test.$field_id"; - $instance_config_name = "field.instance.$instance_id"; + $field_storage_id = 'field_test_import'; + $field_id = "entity_test.entity_test.$field_storage_id"; + $field_config_name = "field.field.$field_id"; // Import default config. $this->installConfig(array('field_test_config')); @@ -36,17 +36,17 @@ function testImportChange() { $this->copyConfig($active, $staging); // Save as files in the the staging directory. - $instance = $active->read($instance_config_name); + $field = $active->read($field_config_name); $new_label = 'Test update import field'; - $instance['label'] = $new_label; - $staging->write($instance_config_name, $instance); + $field['label'] = $new_label; + $staging->write($field_config_name, $field); // Import the content of the staging directory. $this->configImporter()->import(); // Check that the updated config was correctly imported. - $instance = entity_load('field_instance_config', $instance_id); - $this->assertEqual($instance->getLabel(), $new_label, 'Instance label updated'); + $field = entity_load('field_config', $field_id); + $this->assertEqual($field->getLabel(), $new_label, 'field label updated'); } } diff --git a/core/modules/field/src/Tests/FieldImportCreateTest.php b/core/modules/field/src/Tests/FieldImportCreateTest.php index 4c56087..c07d8bf 100644 --- a/core/modules/field/src/Tests/FieldImportCreateTest.php +++ b/core/modules/field/src/Tests/FieldImportCreateTest.php @@ -8,59 +8,59 @@ namespace Drupal\field\Tests; /** - * Create field and instances during config create method invocation. + * Create field storages and fields during config create method invocation. * * @group field */ class FieldImportCreateTest extends FieldUnitTestBase { /** - * Tests creating fields and instances during default config import. + * Tests creating field storages and fields during default config import. */ function testImportCreateDefault() { $field_name = 'field_test_import'; - $field_id = "entity_test.$field_name"; - $instance_id = "entity_test.entity_test.$field_name"; + $field_storage_id = "entity_test.$field_name"; + $field_id = "entity_test.entity_test.$field_name"; $field_name_2 = 'field_test_import_2'; - $field_id_2 = "entity_test.$field_name_2"; - $instance_id_2a = "entity_test.entity_test.$field_name_2"; - $instance_id_2b = "entity_test.test_bundle.$field_name_2"; + $field_storage_id_2 = "entity_test.$field_name_2"; + $field_id_2a = "entity_test.entity_test.$field_name_2"; + $field_id_2b = "entity_test.test_bundle.$field_name_2"; - // Check that the fields and instances do not exist yet. - $this->assertFalse(entity_load('field_storage_config', $field_id)); - $this->assertFalse(entity_load('field_instance_config', $instance_id)); - $this->assertFalse(entity_load('field_storage_config', $field_id_2)); - $this->assertFalse(entity_load('field_instance_config', $instance_id_2a)); - $this->assertFalse(entity_load('field_instance_config', $instance_id_2b)); + // Check that the field storages and fields do not exist yet. + $this->assertFalse(entity_load('field_storage_config', $field_storage_id)); + $this->assertFalse(entity_load('field_config', $field_id)); + $this->assertFalse(entity_load('field_storage_config', $field_storage_id_2)); + $this->assertFalse(entity_load('field_config', $field_id_2a)); + $this->assertFalse(entity_load('field_config', $field_id_2b)); // Create a second bundle for the 'Entity test' entity type. entity_test_create_bundle('test_bundle'); - // Enable field_test_config module and check that the field and instance + // Enable field_test_config module and check that the field and storage // shipped in the module's default config were created. \Drupal::moduleHandler()->install(array('field_test_config')); - // A field with one instance. - $field_storage = entity_load('field_storage_config', $field_id); + // A field storage with one single field. + $field_storage = entity_load('field_storage_config', $field_storage_id); $this->assertTrue($field_storage, 'The field was created.'); - $instance = entity_load('field_instance_config', $instance_id); - $this->assertTrue($instance, 'The field instance was deleted.'); + $field = entity_load('field_config', $field_id); + $this->assertTrue($field, 'The field was deleted.'); - // A field with multiple instances. - $field_storage_2 = entity_load('field_storage_config', $field_id_2); + // A field storage with two fields. + $field_storage_2 = entity_load('field_storage_config', $field_storage_id_2); $this->assertTrue($field_storage_2, 'The second field was created.'); - $this->assertTrue($instance->bundle, 'test_bundle', 'The second field instance was created on bundle test_bundle.'); - $this->assertTrue($instance->bundle, 'test_bundle_2', 'The second field instance was created on bundle test_bundle_2.'); + $this->assertTrue($field->bundle, 'test_bundle', 'The second field was created on bundle test_bundle.'); + $this->assertTrue($field->bundle, 'test_bundle_2', 'The second field was created on bundle test_bundle_2.'); - // Tests field instances. - $ids = \Drupal::entityQuery('field_instance_config') + // Tests fields. + $ids = \Drupal::entityQuery('field_config') ->condition('entity_type', 'entity_test') ->condition('bundle', 'entity_test') ->execute(); $this->assertEqual(count($ids), 2); $this->assertTrue(isset($ids['entity_test.entity_test.field_test_import'])); $this->assertTrue(isset($ids['entity_test.entity_test.field_test_import_2'])); - $ids = \Drupal::entityQuery('field_instance_config') + $ids = \Drupal::entityQuery('field_config') ->condition('entity_type', 'entity_test') ->condition('bundle', 'test_bundle') ->execute(); @@ -69,24 +69,24 @@ function testImportCreateDefault() { } /** - * Tests creating fields and instances during config import. + * Tests creating field storages and fields during config import. */ function testImportCreate() { - // One field with one field instance. + // A field storage with one single field. $field_name = 'field_test_import_staging'; - $field_id = "entity_test.$field_name"; - $instance_id = "entity_test.entity_test.$field_name"; - $field_storage_config_name = "field.storage.$field_id"; - $instance_config_name = "field.instance.$instance_id"; + $field_storage_id = "entity_test.$field_name"; + $field_id = "entity_test.entity_test.$field_name"; + $field_storage_config_name = "field.storage.$field_storage_id"; + $field_config_name = "field.field.$field_id"; - // One field with two field instances. + // A field storage with two fields. $field_name_2 = 'field_test_import_staging_2'; - $field_id_2 = "entity_test.$field_name_2"; - $instance_id_2a = "entity_test.test_bundle.$field_name_2"; - $instance_id_2b = "entity_test.test_bundle_2.$field_name_2"; - $field_storage_config_name_2 = "field.storage.$field_id_2"; - $instance_config_name_2a = "field.instance.$instance_id_2a"; - $instance_config_name_2b = "field.instance.$instance_id_2b"; + $field_storage_id_2 = "entity_test.$field_name_2"; + $field_id_2a = "entity_test.test_bundle.$field_name_2"; + $field_id_2b = "entity_test.test_bundle_2.$field_name_2"; + $field_storage_config_name_2 = "field.storage.$field_storage_id_2"; + $field_config_name_2a = "field.field.$field_id_2a"; + $field_config_name_2b = "field.field.$field_id_2b"; $active = $this->container->get('config.storage'); $staging = $this->container->get('config.storage.staging'); @@ -96,25 +96,25 @@ function testImportCreate() { $src_dir = drupal_get_path('module', 'field_test_config') . '/staging'; $target_dir = $this->configDirectories[CONFIG_STAGING_DIRECTORY]; $this->assertTrue(file_unmanaged_copy("$src_dir/$field_storage_config_name.yml", "$target_dir/$field_storage_config_name.yml")); - $this->assertTrue(file_unmanaged_copy("$src_dir/$instance_config_name.yml", "$target_dir/$instance_config_name.yml")); + $this->assertTrue(file_unmanaged_copy("$src_dir/$field_config_name.yml", "$target_dir/$field_config_name.yml")); $this->assertTrue(file_unmanaged_copy("$src_dir/$field_storage_config_name_2.yml", "$target_dir/$field_storage_config_name_2.yml")); - $this->assertTrue(file_unmanaged_copy("$src_dir/$instance_config_name_2a.yml", "$target_dir/$instance_config_name_2a.yml")); - $this->assertTrue(file_unmanaged_copy("$src_dir/$instance_config_name_2b.yml", "$target_dir/$instance_config_name_2b.yml")); + $this->assertTrue(file_unmanaged_copy("$src_dir/$field_config_name_2a.yml", "$target_dir/$field_config_name_2a.yml")); + $this->assertTrue(file_unmanaged_copy("$src_dir/$field_config_name_2b.yml", "$target_dir/$field_config_name_2b.yml")); // Import the content of the staging directory. $this->configImporter()->import(); - // Check that the field and instance were created. - $field_storage = entity_load('field_storage_config', $field_id); - $this->assertTrue($field_storage, 'Test import field from staging exists'); - $instance = entity_load('field_instance_config', $instance_id); - $this->assertTrue($instance, 'Test import field instance from staging exists'); - $field_storage = entity_load('field_storage_config', $field_id_2); - $this->assertTrue($field_storage, 'Test import field 2 from staging exists'); - $instance = entity_load('field_instance_config', $instance_id_2a); - $this->assertTrue($instance, 'Test import field instance 2a from staging exists'); - $instance = entity_load('field_instance_config', $instance_id_2b); - $this->assertTrue($instance, 'Test import field instance 2b from staging exists'); + // Check that the field and storage were created. + $field_storage = entity_load('field_storage_config', $field_storage_id); + $this->assertTrue($field_storage, 'Test import storage field from staging exists'); + $field = entity_load('field_config', $field_id); + $this->assertTrue($field, 'Test import field from staging exists'); + $field_storage = entity_load('field_storage_config', $field_storage_id_2); + $this->assertTrue($field_storage, 'Test import storage field 2 from staging exists'); + $field = entity_load('field_config', $field_id_2a); + $this->assertTrue($field, 'Test import field 2a from staging exists'); + $field = entity_load('field_config', $field_id_2b); + $this->assertTrue($field, 'Test import field 2b from staging exists'); } } diff --git a/core/modules/field/src/Tests/FieldImportDeleteTest.php b/core/modules/field/src/Tests/FieldImportDeleteTest.php index 4b077d3..5019e49 100644 --- a/core/modules/field/src/Tests/FieldImportDeleteTest.php +++ b/core/modules/field/src/Tests/FieldImportDeleteTest.php @@ -10,7 +10,7 @@ use Drupal\Component\Utility\String; /** - * Delete field and instances during config delete method invocation. + * Delete field storages and fields during config delete method invocation. * * @group field */ @@ -24,29 +24,29 @@ class FieldImportDeleteTest extends FieldUnitTestBase { public static $modules = array('field_test_config'); /** - * Tests deleting fields and instances as part of config import. + * Tests deleting field storages and fields as part of config import. */ public function testImportDelete() { // At this point there are 5 field configuration objects in the active // storage. // - field.storage.entity_test.field_test_import // - field.storage.entity_test.field_test_import_2 - // - field.instance.entity_test.entity_test.field_test_import - // - field.instance.entity_test.entity_test.field_test_import_2 - // - field.instance.entity_test.test_bundle.field_test_import_2 + // - field.field.entity_test.entity_test.field_test_import + // - field.field.entity_test.entity_test.field_test_import_2 + // - field.field.entity_test.test_bundle.field_test_import_2 $field_name = 'field_test_import'; $field_storage_id = "entity_test.$field_name"; $field_name_2 = 'field_test_import_2'; $field_storage_id_2 = "entity_test.$field_name_2"; - $instance_id = "entity_test.entity_test.$field_name"; - $instance_id_2a = "entity_test.entity_test.$field_name_2"; - $instance_id_2b = "entity_test.test_bundle.$field_name_2"; + $field_id = "entity_test.entity_test.$field_name"; + $field_id_2a = "entity_test.entity_test.$field_name_2"; + $field_id_2b = "entity_test.test_bundle.$field_name_2"; $field_storage_config_name = "field.storage.$field_storage_id"; $field_storage_config_name_2 = "field.storage.$field_storage_id_2"; - $instance_config_name = "field.instance.$instance_id"; - $instance_config_name_2a = "field.instance.$instance_id_2a"; - $instance_config_name_2b = "field.instance.$instance_id_2b"; + $field_config_name = "field.field.$field_id"; + $field_config_name_2a = "field.field.$field_id_2a"; + $field_config_name_2b = "field.field.$field_id_2b"; // Create a second bundle for the 'Entity test' entity type. entity_test_create_bundle('test_bundle'); @@ -61,37 +61,37 @@ public function testImportDelete() { $active = $this->container->get('config.storage'); $staging = $this->container->get('config.storage.staging'); $this->copyConfig($active, $staging); - $this->assertTrue($staging->delete($field_storage_config_name), String::format('Deleted field: !field', array('!field' => $field_storage_config_name))); - $this->assertTrue($staging->delete($field_storage_config_name_2), String::format('Deleted field: !field', array('!field' => $field_storage_config_name_2))); - $this->assertTrue($staging->delete($instance_config_name), String::format('Deleted field instance: !field_instance', array('!field_instance' => $instance_config_name))); - $this->assertTrue($staging->delete($instance_config_name_2a), String::format('Deleted field instance: !field_instance', array('!field_instance' => $instance_config_name_2a))); - $this->assertTrue($staging->delete($instance_config_name_2b), String::format('Deleted field instance: !field_instance', array('!field_instance' => $instance_config_name_2b))); + $this->assertTrue($staging->delete($field_storage_config_name), String::format('Deleted field storage: !field_storage', array('!field_storage' => $field_storage_config_name))); + $this->assertTrue($staging->delete($field_storage_config_name_2), String::format('Deleted field storage: !field_storage', array('!field_storage' => $field_storage_config_name_2))); + $this->assertTrue($staging->delete($field_config_name), String::format('Deleted field: !field', array('!field' => $field_config_name))); + $this->assertTrue($staging->delete($field_config_name_2a), String::format('Deleted field: !field', array('!field' => $field_config_name_2a))); + $this->assertTrue($staging->delete($field_config_name_2b), String::format('Deleted field: !field', array('!field' => $field_config_name_2b))); $deletes = $this->configImporter()->getUnprocessedConfiguration('delete'); - $this->assertEqual(count($deletes), 5, 'Importing configuration will delete 3 field instances and 2 fields.'); + $this->assertEqual(count($deletes), 5, 'Importing configuration will delete 3 fields and 2 field storages.'); // Import the content of the staging directory. $this->configImporter()->import(); - // Check that the fields and instances are gone. + // Check that the field storages and fields are gone. $field_storage = entity_load('field_storage_config', $field_storage_id, TRUE); - $this->assertFalse($field_storage, 'The field was deleted.'); + $this->assertFalse($field_storage, 'The field storage was deleted.'); $field_storage_2 = entity_load('field_storage_config', $field_storage_id_2, TRUE); - $this->assertFalse($field_storage_2, 'The second field was deleted.'); - $instance = entity_load('field_instance_config', $instance_id, TRUE); - $this->assertFalse($instance, 'The field instance was deleted.'); - $instance_2a = entity_load('field_instance_config', $instance_id_2a, TRUE); - $this->assertFalse($instance_2a, 'The second field instance on test bundle was deleted.'); - $instance_2b = entity_load('field_instance_config', $instance_id_2b, TRUE); - $this->assertFalse($instance_2b, 'The second field instance on test bundle 2 was deleted.'); + $this->assertFalse($field_storage_2, 'The second field storage was deleted.'); + $field = entity_load('field_config', $field_id, TRUE); + $this->assertFalse($field, 'The field was deleted.'); + $field_2a = entity_load('field_config', $field_id_2a, TRUE); + $this->assertFalse($field_2a, 'The second field on test bundle was deleted.'); + $field_2b = entity_load('field_config', $field_id_2b, TRUE); + $this->assertFalse($field_2b, 'The second field on test bundle 2 was deleted.'); // Check that all config files are gone. $active = $this->container->get('config.storage'); $this->assertIdentical($active->listAll($field_storage_config_name), array()); $this->assertIdentical($active->listAll($field_storage_config_name_2), array()); - $this->assertIdentical($active->listAll($instance_config_name), array()); - $this->assertIdentical($active->listAll($instance_config_name_2a), array()); - $this->assertIdentical($active->listAll($instance_config_name_2b), array()); + $this->assertIdentical($active->listAll($field_config_name), array()); + $this->assertIdentical($active->listAll($field_config_name_2a), array()); + $this->assertIdentical($active->listAll($field_config_name_2b), array()); // Check that the storage definition is preserved in state. $deleted_storages = \Drupal::state()->get('field.storage.deleted') ?: array(); diff --git a/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php b/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php index a02c3d0..975a6cb 100644 --- a/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php +++ b/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php @@ -8,8 +8,8 @@ namespace Drupal\field\Tests; /** - * Delete field and instances during config synchronization and uninstall module - * that provides the field type. + * Delete field storages and fields during config synchronization and uninstall + * module that provides the field type. * * @group field * @see \Drupal\field\ConfigImporterFieldPurger @@ -34,7 +34,7 @@ protected function setUp() { } /** - * Tests deleting fields and instances as part of config import. + * Tests deleting field storages and fields as part of config import. */ public function testImportDeleteUninstall() { // Create a field to delete to prove that @@ -46,19 +46,19 @@ public function testImportDeleteUninstall() { 'type' => 'integer', )); $unrelated_field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $unrelated_field_storage, 'bundle' => 'entity_test', ))->save(); - // Create a telephone field and instance for validation. + // Create a telephone field for validation. $field_storage = entity_create('field_storage_config', array( 'name' => 'field_test', 'entity_type' => 'entity_test', 'type' => 'telephone', )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', ))->save(); @@ -92,7 +92,7 @@ public function testImportDeleteUninstall() { // Stage the field deletion $staging->delete('field.storage.entity_test.field_test'); - $staging->delete('field.instance.entity_test.entity_test.field_test'); + $staging->delete('field.field.entity_test.entity_test.field_test'); $steps = $this->configImporter()->initialize(); $this->assertIdentical($steps[0], array('\Drupal\field\ConfigImporterFieldPurger', 'process'), 'The additional process configuration synchronization step has been added.'); @@ -109,10 +109,11 @@ public function testImportDeleteUninstall() { } /** - * Tests purging already deleted fields and instances during a config import. + * Tests purging already deleted field storages and fields during a config + * import. */ public function testImportAlreadyDeletedUninstall() { - // Create a telephone field and instance for validation. + // Create a telephone field for validation. $field_storage = entity_create('field_storage_config', array( 'name' => 'field_test', 'entity_type' => 'entity_test', @@ -120,7 +121,7 @@ public function testImportAlreadyDeletedUninstall() { )); $field_storage->save(); $field_storage_uuid = $field_storage->uuid(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', ))->save(); diff --git a/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php b/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php index 67dc92d..61091ad 100644 --- a/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php +++ b/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php @@ -8,8 +8,8 @@ namespace Drupal\field\Tests; /** - * Delete field and instances during config synchronization and uninstall module - * that provides the field type through the UI. + * Delete field storages and fields during config synchronization and uninstall + * module that provides the field type through the UI. * * @group field * @see \Drupal\field\ConfigImporterFieldPurger @@ -33,29 +33,29 @@ protected function setUp() { } /** - * Tests deleting fields and instances as part of config import. + * Tests deleting field storages and fields as part of config import. */ public function testImportDeleteUninstall() { - // Create a telephone field and instance. + // Create a telephone field. $field_storage = entity_create('field_storage_config', array( 'name' => 'field_tel', 'entity_type' => 'entity_test', 'type' => 'telephone', )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', ))->save(); - // Create a text field and instance. + // Create a text field. $text_field_storage = entity_create('field_storage_config', array( 'name' => 'field_text', 'entity_type' => 'entity_test', 'type' => 'text', )); $text_field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $text_field_storage, 'bundle' => 'entity_test', ))->save(); @@ -90,7 +90,7 @@ public function testImportDeleteUninstall() { // Stage the field deletion $staging->delete('field.storage.entity_test.field_tel'); - $staging->delete('field.instance.entity_test.entity_test.field_tel'); + $staging->delete('field.field.entity_test.entity_test.field_tel'); $this->drupalGet('admin/config/development/configuration'); // Test that the message for one field being purged during a configuration // synchronization is correct. diff --git a/core/modules/field/src/Tests/FieldInstanceCrudTest.php b/core/modules/field/src/Tests/FieldInstanceCrudTest.php deleted file mode 100644 index a59917a..0000000 --- a/core/modules/field/src/Tests/FieldInstanceCrudTest.php +++ /dev/null @@ -1,222 +0,0 @@ -fieldStorageDefinition = array( - 'name' => drupal_strtolower($this->randomMachineName()), - 'entity_type' => 'entity_test', - 'type' => 'test_field', - ); - $this->fieldStorage = entity_create('field_storage_config', $this->fieldStorageDefinition); - $this->fieldStorage->save(); - $this->instanceDefinition = array( - 'field_name' => $this->fieldStorage->getName(), - 'entity_type' => 'entity_test', - 'bundle' => 'entity_test', - ); - } - - // TODO : test creation with - // - a full fledged $instance structure, check that all the values are there - // - a minimal $instance structure, check all default values are set - // defer actual $instance comparison to a helper function, used for the two cases above, - // and for testUpdateFieldInstance - - /** - * Test the creation of a field instance. - */ - function testCreateFieldInstance() { - $instance = entity_create('field_instance_config', $this->instanceDefinition); - $instance->save(); - - // Read the configuration. Check against raw configuration data rather than - // the loaded ConfigEntity, to be sure we check that the defaults are - // applied on write. - $config = \Drupal::config('field.instance.' . $instance->id())->get(); - $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); - - // Check that default values are set. - $this->assertEqual($config['required'], FALSE, 'Required defaults to false.'); - $this->assertIdentical($config['label'], $this->instanceDefinition['field_name'], 'Label defaults to field name.'); - $this->assertIdentical($config['description'], '', 'Description defaults to empty string.'); - - // Check that default settings are set. - $this->assertEqual($config['settings'], $field_type_manager->getDefaultInstanceSettings($this->fieldStorageDefinition['type']) , 'Default instance settings have been written.'); - - // Check that the denormalized 'field_type' was properly written. - $this->assertEqual($config['field_type'], $this->fieldStorageDefinition['type']); - - // Guarantee that the field/bundle combination is unique. - try { - entity_create('field_instance_config', $this->instanceDefinition)->save(); - $this->fail(t('Cannot create two instances with the same field / bundle combination.')); - } - catch (EntityStorageException $e) { - $this->pass(t('Cannot create two instances with the same field / bundle combination.')); - } - - // Check that the specified field exists. - try { - $this->instanceDefinition['field_name'] = $this->randomMachineName(); - entity_create('field_instance_config', $this->instanceDefinition)->save(); - $this->fail(t('Cannot create an instance of a non-existing field.')); - } - catch (FieldException $e) { - $this->pass(t('Cannot create an instance of a non-existing field.')); - } - - // TODO: test other failures. - } - - /** - * Test reading back an instance definition. - */ - function testReadFieldInstance() { - entity_create('field_instance_config', $this->instanceDefinition)->save(); - - // Read the instance back. - $instance = entity_load('field_instance_config', 'entity_test.' . $this->instanceDefinition['bundle'] . '.' . $this->instanceDefinition['field_name']); - $this->assertTrue($this->instanceDefinition['field_name'] == $instance->getName(), 'The field was properly read.'); - $this->assertTrue($this->instanceDefinition['entity_type'] == $instance->entity_type, 'The field was properly read.'); - $this->assertTrue($this->instanceDefinition['bundle'] == $instance->bundle, 'The field was properly read.'); - } - - /** - * Test the update of a field instance. - */ - function testUpdateFieldInstance() { - entity_create('field_instance_config', $this->instanceDefinition)->save(); - - // Check that basic changes are saved. - $instance = entity_load('field_instance_config', 'entity_test.' . $this->instanceDefinition['bundle'] . '.' . $this->instanceDefinition['field_name']); - $instance->required = !$instance->isRequired(); - $instance->label = $this->randomMachineName(); - $instance->description = $this->randomMachineName(); - $instance->settings['test_instance_setting'] = $this->randomMachineName(); - $instance->save(); - - $instance_new = entity_load('field_instance_config', 'entity_test.' . $this->instanceDefinition['bundle'] . '.' . $this->instanceDefinition['field_name']); - $this->assertEqual($instance->isRequired(), $instance_new->isRequired(), '"required" change is saved'); - $this->assertEqual($instance->getLabel(), $instance_new->getLabel(), '"label" change is saved'); - $this->assertEqual($instance->getDescription(), $instance_new->getDescription(), '"description" change is saved'); - - // TODO: test failures. - } - - /** - * Test the deletion of a field instance. - */ - function testDeleteFieldInstance() { - // TODO: Test deletion of the data stored in the field also. - // Need to check that data for a 'deleted' field / instance doesn't get loaded - // Need to check data marked deleted is cleaned on cron (not implemented yet...) - - // Create two instances for the same field so we can test that only one - // is deleted. - entity_create('field_instance_config', $this->instanceDefinition)->save(); - $another_instance_definition = $this->instanceDefinition; - $another_instance_definition['bundle'] .= '_another_bundle'; - entity_test_create_bundle($another_instance_definition['bundle']); - entity_create('field_instance_config', $another_instance_definition)->save(); - - // Test that the first instance is not deleted, and then delete it. - $instance = current(entity_load_multiple_by_properties('field_instance_config', array('entity_type' => 'entity_test', 'field_name' => $this->instanceDefinition['field_name'], 'bundle' => $this->instanceDefinition['bundle'], 'include_deleted' => TRUE))); - $this->assertTrue(!empty($instance) && empty($instance->deleted), 'A new field instance is not marked for deletion.'); - $instance->delete(); - - // Make sure the instance is marked as deleted when the instance is - // specifically loaded. - $instance = current(entity_load_multiple_by_properties('field_instance_config', array('entity_type' => 'entity_test', 'field_name' => $this->instanceDefinition['field_name'], 'bundle' => $this->instanceDefinition['bundle'], 'include_deleted' => TRUE))); - $this->assertTrue(!empty($instance->deleted), 'A deleted field instance is marked for deletion.'); - - // Try to load the instance normally and make sure it does not show up. - $instance = entity_load('field_instance_config', 'entity_test.' . '.' . $this->instanceDefinition['bundle'] . '.' . $this->instanceDefinition['field_name']); - $this->assertTrue(empty($instance), 'A deleted field instance is not loaded by default.'); - - // Make sure the other field instance is not deleted. - $another_instance = entity_load('field_instance_config', 'entity_test.' . $another_instance_definition['bundle'] . '.' . $another_instance_definition['field_name']); - $this->assertTrue(!empty($another_instance) && empty($another_instance->deleted), 'A non-deleted field instance is not marked for deletion.'); - } - - /** - * Tests the cross deletion behavior between fields and instances. - */ - function testDeleteFieldInstanceCrossDeletion() { - $instance_definition_2 = $this->instanceDefinition; - $instance_definition_2['bundle'] .= '_another_bundle'; - entity_test_create_bundle($instance_definition_2['bundle']); - - // Check that deletion of a field deletes its instances. - $field_storage = $this->fieldStorage; - entity_create('field_instance_config', $this->instanceDefinition)->save(); - entity_create('field_instance_config', $instance_definition_2)->save(); - $field_storage->delete(); - $this->assertFalse(FieldInstanceConfig::loadByName('entity_test', $this->instanceDefinition['bundle'], $field_storage->name)); - $this->assertFalse(FieldInstanceConfig::loadByName('entity_test', $instance_definition_2['bundle'], $field_storage->name)); - - // Chack that deletion of the last instance deletes the field. - $field_storage = entity_create('field_storage_config', $this->fieldStorageDefinition); - $field_storage->save(); - $instance = entity_create('field_instance_config', $this->instanceDefinition); - $instance->save(); - $instance_2 = entity_create('field_instance_config', $instance_definition_2); - $instance_2->save(); - $instance->delete(); - $this->assertTrue(FieldStorageConfig::loadByName('entity_test', $field_storage->name)); - $instance_2->delete(); - $this->assertFalse(FieldStorageConfig::loadByName('entity_test', $field_storage->name)); - - // Check that deletion of all instances of the same field simultaneously - // deletes the field. - $field_storage = entity_create('field_storage_config', $this->fieldStorageDefinition); - $field_storage->save(); - $instance = entity_create('field_instance_config', $this->instanceDefinition); - $instance->save(); - $instance_2 = entity_create('field_instance_config', $instance_definition_2); - $instance_2->save(); - $this->container->get('entity.manager')->getStorage('field_instance_config')->delete(array($instance, $instance_2)); - $this->assertFalse(FieldStorageConfig::loadByName('entity_test', $field_storage->name)); - } - -} diff --git a/core/modules/field/src/Tests/FieldTypePluginManagerTest.php b/core/modules/field/src/Tests/FieldTypePluginManagerTest.php index f079d3e..14a9d61 100644 --- a/core/modules/field/src/Tests/FieldTypePluginManagerTest.php +++ b/core/modules/field/src/Tests/FieldTypePluginManagerTest.php @@ -21,8 +21,8 @@ function testDefaultSettings() { $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); foreach (array('test_field', 'shape', 'hidden_test_field') as $type) { $definition = $field_type_manager->getDefinition($type); - $this->assertIdentical($field_type_manager->getDefaultSettings($type), $definition['class']::defaultSettings(), format_string("field settings service returns %type's field settings", array('%type' => $type))); - $this->assertIdentical($field_type_manager->getDefaultInstanceSettings($type), $definition['class']::defaultInstanceSettings(), format_string("field instance settings service returns %type's field instance settings", array('%type' => $type))); + $this->assertIdentical($field_type_manager->getDefaultSettings($type), $definition['class']::defaultSettings(), format_string("%type storage settings were returned", array('%type' => $type))); + $this->assertIdentical($field_type_manager->getDefaultFieldSettings($type), $definition['class']::defaultFieldSettings(), format_string(" %type field settings were returned", array('%type' => $type))); } } diff --git a/core/modules/field/src/Tests/FieldUnitTestBase.php b/core/modules/field/src/Tests/FieldUnitTestBase.php index 66ba2a0..0b0fdd0 100644 --- a/core/modules/field/src/Tests/FieldUnitTestBase.php +++ b/core/modules/field/src/Tests/FieldUnitTestBase.php @@ -24,16 +24,16 @@ public static $modules = array('user', 'entity', 'system', 'field', 'text', 'entity_test', 'field_test'); /** - * Bag of created fields and instances. + * Bag of created field storages and fields. * - * Allows easy access to test field/instance names/IDs/objects via: - * - $this->fields->field_name[suffix] - * - $this->fields->field_storage[suffix] - * - $this->fields->field_storage_uuid[suffix] - * - $this->fields->instance[suffix] - * - $this->fields->instance_definition[suffix] + * Allows easy access to test field storage/field names/IDs/objects via: + * - $this->fieldTestData->field_name[suffix] + * - $this->fieldTestData->field_storage[suffix] + * - $this->fieldTestData->field_storage_uuid[suffix] + * - $this->fieldTestData->field[suffix] + * - $this->fieldTestData->field_definition[suffix] * - * @see \Drupal\field\Tests\FieldUnitTestBase::createFieldWithInstance() + * @see \Drupal\field\Tests\FieldUnitTestBase::createFieldWithStorage() * * @var \ArrayObject */ @@ -56,27 +56,27 @@ protected function setUp() { } /** - * Create a field and an instance of it. + * Create a field and an associated field storage. * * @param string $suffix * (optional) A string that should only contain characters that are valid in * PHP variable names as well. * @param string $entity_type - * (optional) The entity type on which the instance should be created. + * (optional) The entity type on which the field should be created. * Defaults to "entity_test". * @param string $bundle - * (optional) The entity type on which the instance should be created. + * (optional) The entity type on which the field should be created. * Defaults to the default bundle of the entity type. */ - protected function createFieldWithInstance($suffix = '', $entity_type = 'entity_test', $bundle = NULL) { + protected function createFieldWithStorage($suffix = '', $entity_type = 'entity_test', $bundle = NULL) { if (empty($bundle)) { $bundle = $entity_type; } $field_name = 'field_name' . $suffix; $field_storage = 'field_storage' . $suffix; $field_storage_uuid = 'field_storage_uuid' . $suffix; - $instance = 'instance' . $suffix; - $instance_definition = 'instance_definition' . $suffix; + $field = 'field' . $suffix; + $field_definition = 'field_definition' . $suffix; $this->fieldTestData->$field_name = drupal_strtolower($this->randomMachineName() . '_field_name' . $suffix); $this->fieldTestData->$field_storage = entity_create('field_storage_config', array( @@ -87,17 +87,17 @@ protected function createFieldWithInstance($suffix = '', $entity_type = 'entity_ )); $this->fieldTestData->$field_storage->save(); $this->fieldTestData->$field_storage_uuid = $this->fieldTestData->$field_storage->uuid(); - $this->fieldTestData->$instance_definition = array( + $this->fieldTestData->$field_definition = array( 'field_storage' => $this->fieldTestData->$field_storage, 'bundle' => $bundle, 'label' => $this->randomMachineName() . '_label', 'description' => $this->randomMachineName() . '_description', 'settings' => array( - 'test_instance_setting' => $this->randomMachineName(), + 'test_field_setting' => $this->randomMachineName(), ), ); - $this->fieldTestData->$instance = entity_create('field_instance_config', $this->fieldTestData->$instance_definition); - $this->fieldTestData->$instance->save(); + $this->fieldTestData->$field = entity_create('field_config', $this->fieldTestData->$field_definition); + $this->fieldTestData->$field->save(); entity_get_form_display($entity_type, $bundle, 'default') ->setComponent($this->fieldTestData->$field_name, array( diff --git a/core/modules/field/src/Tests/FieldValidationTest.php b/core/modules/field/src/Tests/FieldValidationTest.php index 7795684..4454c23 100644 --- a/core/modules/field/src/Tests/FieldValidationTest.php +++ b/core/modules/field/src/Tests/FieldValidationTest.php @@ -7,8 +7,6 @@ namespace Drupal\field\Tests; -use Drupal\field\Tests\FieldUnitTestBase; - /** * Tests field validation. * @@ -34,11 +32,11 @@ class FieldValidationTest extends FieldUnitTestBase { protected function setUp() { parent::setUp(); - // Create a field and instance of type 'test_field', on the 'entity_test' + // Create a field and storage of type 'test_field', on the 'entity_test' // entity type. $this->entityType = 'entity_test'; $this->bundle = 'entity_test'; - $this->createFieldWithInstance('', $this->entityType, $this->bundle); + $this->createFieldWithStorage('', $this->entityType, $this->bundle); // Create an 'entity_test' entity. $this->entity = entity_create($this->entityType, array( @@ -63,7 +61,7 @@ function testCardinalityConstraint() { // Check that the expected constraint violations are reported. $this->assertEqual(count($violations), 1); $this->assertEqual($violations[0]->getPropertyPath(), ''); - $this->assertEqual($violations[0]->getMessage(), t('%name: this field cannot hold more than @count values.', array('%name' => $this->fieldTestData->instance->getLabel(), '@count' => $cardinality))); + $this->assertEqual($violations[0]->getMessage(), t('%name: this field cannot hold more than @count values.', array('%name' => $this->fieldTestData->field->getLabel(), '@count' => $cardinality))); } /** @@ -85,7 +83,7 @@ function testFieldConstraints() { } else { $value = -1; - $expected_violations[$delta . '.value'][] = t('%name does not accept the value -1.', array('%name' => $this->fieldTestData->instance->getLabel())); + $expected_violations[$delta . '.value'][] = t('%name does not accept the value -1.', array('%name' => $this->fieldTestData->field->getLabel())); } $entity->{$this->fieldTestData->field_name}->get($delta)->set('value', $value); } diff --git a/core/modules/field/src/Tests/FormTest.php b/core/modules/field/src/Tests/FormTest.php index bea7e14..ea0ad65 100644 --- a/core/modules/field/src/Tests/FormTest.php +++ b/core/modules/field/src/Tests/FormTest.php @@ -47,11 +47,11 @@ class FormTest extends FieldTestBase { protected $fieldStorageUnlimited; /** - * An array of values defining a field instance. + * An array of values defining a field. * * @var array */ - protected $instance; + protected $field; protected function setUp() { parent::setUp(); @@ -77,14 +77,14 @@ protected function setUp() { 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, ); - $this->instance = array( + $this->field = array( 'entity_type' => 'entity_test', 'bundle' => 'entity_test', 'label' => $this->randomMachineName() . '_label', 'description' => '[site:name]_description', 'weight' => mt_rand(0, 127), 'settings' => array( - 'test_instance_setting' => $this->randomMachineName(), + 'test_field_setting' => $this->randomMachineName(), ), ); } @@ -92,10 +92,10 @@ protected function setUp() { function testFieldFormSingle() { $field_storage = $this->fieldStorageSingle; $field_name = $field_storage['name']; - $this->instance['field_name'] = $field_name; + $this->field['field_name'] = $field_name; entity_create('field_storage_config', $field_storage)->save(); - entity_create('field_instance_config', $this->instance)->save(); - entity_get_form_display($this->instance['entity_type'], $this->instance['bundle'], 'default') + entity_create('field_config', $this->field)->save(); + entity_get_form_display($this->field['entity_type'], $this->field['bundle'], 'default') ->setComponent($field_name) ->save(); @@ -119,7 +119,7 @@ function testFieldFormSingle() { "{$field_name}[0][value]" => -1 ); $this->drupalPostForm(NULL, $edit, t('Save')); - $this->assertRaw(t('%name does not accept the value -1.', array('%name' => $this->instance['label'])), 'Field validation fails with invalid input.'); + $this->assertRaw(t('%name does not accept the value -1.', array('%name' => $this->field['label'])), 'Field validation fails with invalid input.'); // TODO : check that the correct field is flagged for error. // Create an entity @@ -174,12 +174,12 @@ function testFieldFormSingle() { function testFieldFormDefaultValue() { $field_storage = $this->fieldStorageSingle; $field_name = $field_storage['name']; - $this->instance['field_name'] = $field_name; + $this->field['field_name'] = $field_name; $default = rand(1, 127); - $this->instance['default_value'] = array(array('value' => $default)); + $this->field['default_value'] = array(array('value' => $default)); entity_create('field_storage_config', $field_storage)->save(); - entity_create('field_instance_config', $this->instance)->save(); - entity_get_form_display($this->instance['entity_type'], $this->instance['bundle'], 'default') + entity_create('field_config', $this->field)->save(); + entity_get_form_display($this->field['entity_type'], $this->field['bundle'], 'default') ->setComponent($field_name) ->save(); @@ -205,18 +205,18 @@ function testFieldFormDefaultValue() { function testFieldFormSingleRequired() { $field_storage = $this->fieldStorageSingle; $field_name = $field_storage['name']; - $this->instance['field_name'] = $field_name; - $this->instance['required'] = TRUE; + $this->field['field_name'] = $field_name; + $this->field['required'] = TRUE; entity_create('field_storage_config', $field_storage)->save(); - entity_create('field_instance_config', $this->instance)->save(); - entity_get_form_display($this->instance['entity_type'], $this->instance['bundle'], 'default') + entity_create('field_config', $this->field)->save(); + entity_get_form_display($this->field['entity_type'], $this->field['bundle'], 'default') ->setComponent($field_name) ->save(); // Submit with missing required value. $edit = array(); $this->drupalPostForm('entity_test/add', $edit, t('Save')); - $this->assertRaw(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation'); + $this->assertRaw(t('!name field is required.', array('!name' => $this->field['label'])), 'Required field with no value fails validation'); // Create an entity $value = mt_rand(1, 127); @@ -240,7 +240,7 @@ function testFieldFormSingleRequired() { "{$field_name}[0][value]" => $value, ); $this->drupalPostForm('entity_test/manage/' . $id, $edit, t('Save')); - $this->assertRaw(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation'); + $this->assertRaw(t('!name field is required.', array('!name' => $this->field['label'])), 'Required field with no value fails validation'); } // function testFieldFormMultiple() { @@ -248,16 +248,16 @@ function testFieldFormSingleRequired() { // $field_name = $this->field['field_name']; // $this->instance['field_name'] = $field_name; // entity_create('field_storage_config', $this->field)->save(); -// entity_create('field_instance_config', $this->instance)->save(); +// entity_create('field_config', $this->instance)->save(); // } function testFieldFormUnlimited() { $field_storage = $this->fieldStorageUnlimited; $field_name = $field_storage['name']; - $this->instance['field_name'] = $field_name; + $this->field['field_name'] = $field_name; entity_create('field_storage_config', $field_storage)->save(); - entity_create('field_instance_config', $this->instance)->save(); - entity_get_form_display($this->instance['entity_type'], $this->instance['bundle'], 'default') + entity_create('field_config', $this->field)->save(); + entity_get_form_display($this->field['entity_type'], $this->field['bundle'], 'default') ->setComponent($field_name) ->save(); @@ -340,10 +340,10 @@ function testFieldFormMultivalueWithRequiredRadio() { // Create a multivalue test field. $field_storage = $this->fieldStorageUnlimited; $field_name = $field_storage['name']; - $this->instance['field_name'] = $field_name; + $this->field['field_name'] = $field_name; entity_create('field_storage_config', $field_storage)->save(); - entity_create('field_instance_config', $this->instance)->save(); - entity_get_form_display($this->instance['entity_type'], $this->instance['bundle'], 'default') + entity_create('field_config', $this->field)->save(); + entity_get_form_display($this->field['entity_type'], $this->field['bundle'], 'default') ->setComponent($field_name) ->save(); @@ -356,15 +356,15 @@ function testFieldFormMultivalueWithRequiredRadio() { 'allowed_values' => array('yes' => 'yes', 'no' => 'no'), ), ))->save(); - $instance = array( + $field = array( 'field_name' => 'required_radio_test', 'entity_type' => 'entity_test', 'bundle' => 'entity_test', 'required' => TRUE, ); - entity_create('field_instance_config', $instance)->save(); - entity_get_form_display($instance['entity_type'], $instance['bundle'], 'default') - ->setComponent($instance['field_name'], array( + entity_create('field_config', $field)->save(); + entity_get_form_display($field['entity_type'], $field['bundle'], 'default') + ->setComponent($field['field_name'], array( 'type' => 'options_buttons', )) ->save(); @@ -387,10 +387,10 @@ function testFieldFormMultivalueWithRequiredRadio() { function testFieldFormJSAddMore() { $field_storage = $this->fieldStorageUnlimited; $field_name = $field_storage['name']; - $this->instance['field_name'] = $field_name; + $this->field['field_name'] = $field_name; entity_create('field_storage_config', $field_storage)->save(); - entity_create('field_instance_config', $this->instance)->save(); - entity_get_form_display($this->instance['entity_type'], $this->instance['bundle'], 'default') + entity_create('field_config', $this->field)->save(); + entity_get_form_display($this->field['entity_type'], $this->field['bundle'], 'default') ->setComponent($field_name) ->save(); @@ -444,14 +444,14 @@ function testFieldFormJSAddMore() { * Tests widgets handling multiple values. */ function testFieldFormMultipleWidget() { - // Create a field with fixed cardinality and an instance using a multiple - // widget. + // Create a field with fixed cardinality, configure the form to use a + // "multiple" widget. $field_storage = $this->fieldStorageMultiple; $field_name = $field_storage['name']; - $this->instance['field_name'] = $field_name; + $this->field['field_name'] = $field_name; entity_create('field_storage_config', $field_storage)->save(); - entity_create('field_instance_config', $this->instance)->save(); - entity_get_form_display($this->instance['entity_type'], $this->instance['bundle'], 'default') + entity_create('field_config', $this->field)->save(); + entity_get_form_display($this->field['entity_type'], $this->field['bundle'], 'default') ->setComponent($field_name, array( 'type' => 'test_field_widget_multiple', )) @@ -496,12 +496,12 @@ function testFieldFormAccess() { $field_storage = $this->fieldStorageSingle; $field_storage['entity_type'] = $entity_type; $field_name = $field_storage['name']; - $instance = $this->instance; - $instance['field_name'] = $field_name; - $instance['entity_type'] = $entity_type; - $instance['bundle'] = $entity_type; + $field = $this->field; + $field['field_name'] = $field_name; + $field['entity_type'] = $entity_type; + $field['bundle'] = $entity_type; entity_create('field_storage_config', $field_storage)->save(); - entity_create('field_instance_config', $instance)->save(); + entity_create('field_config', $field)->save(); entity_get_form_display($entity_type, $entity_type, 'default') ->setComponent($field_name) ->save(); @@ -514,15 +514,15 @@ function testFieldFormAccess() { 'type' => 'test_field', ); $field_name_no_access = $field_storage_no_access['name']; - $instance_no_access = array( + $field_no_access = array( 'field_name' => $field_name_no_access, 'entity_type' => $entity_type, 'bundle' => $entity_type, 'default_value' => array(0 => array('value' => 99)), ); entity_create('field_storage_config', $field_storage_no_access)->save(); - entity_create('field_instance_config', $instance_no_access)->save(); - entity_get_form_display($instance_no_access['entity_type'], $instance_no_access['bundle'], 'default') + entity_create('field_config', $field_no_access)->save(); + entity_get_form_display($field_no_access['entity_type'], $field_no_access['bundle'], 'default') ->setComponent($field_name_no_access) ->save(); @@ -585,13 +585,13 @@ function testHiddenField() { $field_storage = $this->fieldStorageSingle; $field_storage['entity_type'] = $entity_type; $field_name = $field_storage['name']; - $this->instance['field_name'] = $field_name; - $this->instance['default_value'] = array(0 => array('value' => 99)); - $this->instance['entity_type'] = $entity_type; - $this->instance['bundle'] = $entity_type; + $this->field['field_name'] = $field_name; + $this->field['default_value'] = array(0 => array('value' => 99)); + $this->field['entity_type'] = $entity_type; + $this->field['bundle'] = $entity_type; entity_create('field_storage_config', $field_storage)->save(); - $this->instance = entity_create('field_instance_config', $this->instance); - $this->instance->save(); + $this->field = entity_create('field_config', $this->field); + $this->field->save(); // We explicitly do not assign a widget in a form display, so the field // stays hidden in forms. @@ -608,12 +608,12 @@ function testHiddenField() { $entity = entity_load($entity_type, $id); $this->assertEqual($entity->{$field_name}->value, 99, 'Default value was saved'); - // Update the instance to remove the default value and switch to the - // default widget. - $this->instance->default_value = NULL; - $this->instance->save(); - entity_get_form_display($entity_type, $this->instance->bundle, 'default') - ->setComponent($this->instance->getName(), array( + // Update the field to remove the default value, and switch to the default + // widget. + $this->field->default_value = NULL; + $this->field->save(); + entity_get_form_display($entity_type, $this->field->bundle, 'default') + ->setComponent($this->field->getName(), array( 'type' => 'test_field_widget', )) ->save(); @@ -632,8 +632,8 @@ function testHiddenField() { $this->assertEqual($entity->{$field_name}->value, $value, 'Field value was updated'); // Set the field back to hidden. - entity_get_form_display($entity_type, $this->instance->bundle, 'default') - ->removeComponent($this->instance->getName()) + entity_get_form_display($entity_type, $this->field->bundle, 'default') + ->removeComponent($this->field->getName()) ->save(); // Create a new revision. diff --git a/core/modules/field/src/Tests/NestedFormTest.php b/core/modules/field/src/Tests/NestedFormTest.php index e1d6096..6f0605a 100644 --- a/core/modules/field/src/Tests/NestedFormTest.php +++ b/core/modules/field/src/Tests/NestedFormTest.php @@ -40,14 +40,14 @@ protected function setUp() { 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, ); - $this->instance = array( + $this->field = array( 'entity_type' => 'entity_test', 'bundle' => 'entity_test', 'label' => $this->randomMachineName() . '_label', 'description' => '[site:name]_description', 'weight' => mt_rand(0, 127), 'settings' => array( - 'test_instance_setting' => $this->randomMachineName(), + 'test_field_setting' => $this->randomMachineName(), ), ); } @@ -56,20 +56,20 @@ protected function setUp() { * Tests Field API form integration within a subform. */ function testNestedFieldForm() { - // Add two instances on the 'entity_test' + // Add two fields on the 'entity_test' entity_create('field_storage_config', $this->fieldStorageSingle)->save(); entity_create('field_storage_config', $this->fieldStorageUnlimited)->save(); - $this->instance['field_name'] = 'field_single'; - $this->instance['label'] = 'Single field'; - entity_create('field_instance_config', $this->instance)->save(); - entity_get_form_display($this->instance['entity_type'], $this->instance['bundle'], 'default') - ->setComponent($this->instance['field_name']) + $this->field['field_name'] = 'field_single'; + $this->field['label'] = 'Single field'; + entity_create('field_config', $this->field)->save(); + entity_get_form_display($this->field['entity_type'], $this->field['bundle'], 'default') + ->setComponent($this->field['field_name']) ->save(); - $this->instance['field_name'] = 'field_unlimited'; - $this->instance['label'] = 'Unlimited field'; - entity_create('field_instance_config', $this->instance)->save(); - entity_get_form_display($this->instance['entity_type'], $this->instance['bundle'], 'default') - ->setComponent($this->instance['field_name']) + $this->field['field_name'] = 'field_unlimited'; + $this->field['label'] = 'Unlimited field'; + entity_create('field_config', $this->field)->save(); + entity_get_form_display($this->field['entity_type'], $this->field['bundle'], 'default') + ->setComponent($this->field['field_name']) ->save(); // Create two entities. diff --git a/core/modules/field/src/Tests/Number/NumberFieldTest.php b/core/modules/field/src/Tests/Number/NumberFieldTest.php index 82b69d2..2e5217c 100644 --- a/core/modules/field/src/Tests/Number/NumberFieldTest.php +++ b/core/modules/field/src/Tests/Number/NumberFieldTest.php @@ -51,7 +51,7 @@ function testNumberDecimalField() { 'precision' => 8, 'scale' => 4, 'decimal_separator' => '.', ) ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => 'entity_test', 'bundle' => 'entity_test', @@ -141,7 +141,7 @@ function testNumberIntegerField() { 'type' => 'integer', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => 'entity_test', 'bundle' => 'entity_test', @@ -245,7 +245,7 @@ function testNumberFloatField() { 'type' => 'float', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => 'entity_test', 'bundle' => 'entity_test', @@ -350,7 +350,7 @@ function testNumberFormatter() { 'type' => 'integer', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $float_field, 'entity_type' => 'node', 'bundle' => $type, @@ -360,7 +360,7 @@ function testNumberFormatter() { ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $integer_field, 'entity_type' => 'node', 'bundle' => $type, diff --git a/core/modules/field/src/Tests/Number/NumberItemTest.php b/core/modules/field/src/Tests/Number/NumberItemTest.php index 4b66ad6..21fbe69 100644 --- a/core/modules/field/src/Tests/Number/NumberItemTest.php +++ b/core/modules/field/src/Tests/Number/NumberItemTest.php @@ -28,14 +28,14 @@ class NumberItemTest extends FieldUnitTestBase { protected function setUp() { parent::setUp(); - // Create number fields and instances for validation. + // Create number field storages and fields for validation. foreach (array('integer', 'float', 'decimal') as $type) { entity_create('field_storage_config', array( 'name' => 'field_' . $type, 'entity_type' => 'entity_test', 'type' => $type, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'field_' . $type, 'bundle' => 'entity_test', diff --git a/core/modules/field/src/Tests/ShapeItemTest.php b/core/modules/field/src/Tests/ShapeItemTest.php index dc05d66..4b9671c 100644 --- a/core/modules/field/src/Tests/ShapeItemTest.php +++ b/core/modules/field/src/Tests/ShapeItemTest.php @@ -34,13 +34,13 @@ class ShapeItemTest extends FieldUnitTestBase { protected function setUp() { parent::setUp(); - // Create an field field and instance for validation. + // Create a 'shape' field and storage for validation. entity_create('field_storage_config', array( 'name' => $this->field_name, 'entity_type' => 'entity_test', 'type' => 'shape', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => $this->field_name, 'bundle' => 'entity_test', diff --git a/core/modules/field/src/Tests/TestItemTest.php b/core/modules/field/src/Tests/TestItemTest.php index e72b46b..a433c00 100644 --- a/core/modules/field/src/Tests/TestItemTest.php +++ b/core/modules/field/src/Tests/TestItemTest.php @@ -35,13 +35,13 @@ class TestItemTest extends FieldUnitTestBase { protected function setUp() { parent::setUp(); - // Create an field field and instance for validation. + // Create a 'test_field' field and storage for validation. entity_create('field_storage_config', array( 'name' => $this->field_name, 'entity_type' => 'entity_test', 'type' => 'test_field', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => $this->field_name, 'bundle' => 'entity_test', diff --git a/core/modules/field/src/Tests/TranslationTest.php b/core/modules/field/src/Tests/TranslationTest.php index 50c31aa..17caf02 100644 --- a/core/modules/field/src/Tests/TranslationTest.php +++ b/core/modules/field/src/Tests/TranslationTest.php @@ -43,6 +43,13 @@ class TranslationTest extends FieldUnitTestBase { /** + * An array defining the field storage to use in this test. + * + * @var array + */ + protected $field_storage_definition; + + /** * An array defining the field to use in this test. * * @var array @@ -50,13 +57,6 @@ class TranslationTest extends FieldUnitTestBase { protected $field_definition; /** - * An array defining the field instance to use in this test. - * - * @var array - */ - protected $instance_definition; - - /** * The field storage to use in this test. * * @var \Drupal\field\Entity\FieldStorageConfig @@ -64,11 +64,11 @@ class TranslationTest extends FieldUnitTestBase { protected $fieldStorage; /** - * The field instance to use in this test. + * The field to use in this test. * - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; protected function setUp() { parent::setUp(); @@ -79,22 +79,22 @@ protected function setUp() { $this->entity_type = 'entity_test'; - $this->field_definition = array( + $this->field_storage_definition = array( 'name' => $this->field_name, 'entity_type' => $this->entity_type, 'type' => 'test_field', 'cardinality' => 4, 'translatable' => TRUE, ); - $this->fieldStorage = entity_create('field_storage_config', $this->field_definition); + $this->fieldStorage = entity_create('field_storage_config', $this->field_storage_definition); $this->fieldStorage->save(); - $this->instance_definition = array( + $this->field_definition = array( 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', ); - $this->instance = entity_create('field_instance_config', $this->instance_definition); - $this->instance->save(); + $this->field = entity_create('field_config', $this->field_definition); + $this->field->save(); for ($i = 0; $i < 3; ++$i) { $language = new Language(array( @@ -117,7 +117,7 @@ function testTranslatableFieldSaveLoad() { // Prepare the field translations. $entity_type_id = 'entity_test'; field_test_entity_info_translatable($entity_type_id, TRUE); - $entity = entity_create($entity_type_id, array('type' => $this->instance->bundle)); + $entity = entity_create($entity_type_id, array('type' => $this->field->bundle)); $field_translations = array(); $available_langcodes = array_keys($this->container->get('language_manager')->getLanguages()); $entity->langcode->value = reset($available_langcodes); @@ -140,22 +140,22 @@ function testTranslatableFieldSaveLoad() { // Test default values. $field_name_default = drupal_strtolower($this->randomMachineName() . '_field_name'); - $field_definition = $this->field_definition; - $field_definition['name'] = $field_name_default; - $field_storage = entity_create('field_storage_config', $field_definition); + $field_storage_definition = $this->field_storage_definition; + $field_storage_definition['name'] = $field_name_default; + $field_storage = entity_create('field_storage_config', $field_storage_definition); $field_storage->save(); - $instance_definition = $this->instance_definition; - $instance_definition['field_storage'] = $field_storage; - $instance_definition['default_value'] = array(array('value' => rand(1, 127))); - $instance = entity_create('field_instance_config', $instance_definition); - $instance->save(); + $field_definition = $this->field_definition; + $field_definition['field_storage'] = $field_storage; + $field_definition['default_value'] = array(array('value' => rand(1, 127))); + $field = entity_create('field_config', $field_definition); + $field->save(); $translation_langcodes = array_slice($available_langcodes, 0, 2); asort($translation_langcodes); $translation_langcodes = array_values($translation_langcodes); - $values = array('type' => $instance->bundle, 'langcode' => $translation_langcodes[0]); + $values = array('type' => $field->bundle, 'langcode' => $translation_langcodes[0]); $entity = entity_create($entity_type_id, $values); foreach ($translation_langcodes as $langcode) { $values[$this->field_name][$langcode] = $this->_generateTestFieldValues($this->fieldStorage->getCardinality()); @@ -169,11 +169,11 @@ function testTranslatableFieldSaveLoad() { // @todo Test every translation once the Entity Translation API allows for // multilingual defaults. $langcode = $entity->language()->id; - $this->assertEqual($entity->getTranslation($langcode)->{$field_name_default}->getValue(), $instance->default_value, format_string('Default value correctly populated for language %language.', array('%language' => $langcode))); + $this->assertEqual($entity->getTranslation($langcode)->{$field_name_default}->getValue(), $field->default_value, format_string('Default value correctly populated for language %language.', array('%language' => $langcode))); // Check that explicit empty values are not overridden with default values. foreach (array(NULL, array()) as $empty_items) { - $values = array('type' => $instance->bundle, 'langcode' => $translation_langcodes[0]); + $values = array('type' => $field->bundle, 'langcode' => $translation_langcodes[0]); $entity = entity_create($entity_type_id, $values); foreach ($translation_langcodes as $langcode) { $values[$this->field_name][$langcode] = $this->_generateTestFieldValues($this->fieldStorage->getCardinality()); diff --git a/core/modules/field/src/Tests/TranslationWebTest.php b/core/modules/field/src/Tests/TranslationWebTest.php index 6646072..4a13e2e 100644 --- a/core/modules/field/src/Tests/TranslationWebTest.php +++ b/core/modules/field/src/Tests/TranslationWebTest.php @@ -45,33 +45,33 @@ class TranslationWebTest extends FieldTestBase { protected $fieldStorage; /** - * The field instance to use in this test. + * The field to use in this test. * - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; protected function setUp() { parent::setUp(); $this->field_name = drupal_strtolower($this->randomMachineName() . '_field_name'); - $field = array( + $field_storage = array( 'name' => $this->field_name, 'entity_type' => $this->entity_type, 'type' => 'test_field', 'cardinality' => 4, 'translatable' => TRUE, ); - entity_create('field_storage_config', $field)->save(); + entity_create('field_storage_config', $field_storage)->save(); $this->fieldStorage = entity_load('field_storage_config', $this->entity_type . '.' . $this->field_name); - $instance = array( + $field = array( 'field_storage' => $this->fieldStorage, 'bundle' => $this->entity_type, ); - entity_create('field_instance_config', $instance)->save(); - $this->instance = entity_load('field_instance_config', $this->entity_type . '.' . $instance['bundle'] . '.' . $this->field_name); + entity_create('field_config', $field)->save(); + $this->field = entity_load('field_config', $this->entity_type . '.' . $field['bundle'] . '.' . $this->field_name); entity_get_form_display($this->entity_type, $this->entity_type, 'default') ->setComponent($this->field_name) diff --git a/core/modules/field/src/Tests/Views/ApiDataTest.php b/core/modules/field/src/Tests/Views/ApiDataTest.php index 7631e29..b53c136 100644 --- a/core/modules/field/src/Tests/Views/ApiDataTest.php +++ b/core/modules/field/src/Tests/Views/ApiDataTest.php @@ -18,15 +18,15 @@ class ApiDataTest extends FieldTestBase { protected function setUp() { parent::setUp(); - $field_names = $this->setUpFields(1); + $field_names = $this->setUpFieldStorages(1); // Attach the field to nodes only. - $instance = array( + $field = array( 'field_name' => $field_names[0], 'entity_type' => 'node', 'bundle' => 'page', ); - entity_create('field_instance_config', $instance)->save(); + entity_create('field_config', $field)->save(); // Now create some example nodes/users for the view result. for ($i = 0; $i < 5; $i++) { diff --git a/core/modules/field/src/Tests/Views/FieldTestBase.php b/core/modules/field/src/Tests/Views/FieldTestBase.php index 43222e0..9362ca6 100644 --- a/core/modules/field/src/Tests/Views/FieldTestBase.php +++ b/core/modules/field/src/Tests/Views/FieldTestBase.php @@ -42,12 +42,12 @@ public $fieldStorages; /** - * Stores the instances of the fields. They have - * the same keys as the fields. + * Stores the fields of the field storage. They have the same keys as the + * field storages. * * @var array */ - public $instances; + public $fields; protected function setUp() { parent::setUp(); @@ -61,7 +61,7 @@ protected function setUp() { ViewTestData::createTestViews(get_class($this), array('field_test_views')); } - function setUpFields($amount = 3) { + function setUpFieldStorages($amount = 3) { // Create three fields. $field_names = array(); for ($i = 0; $i < $amount; $i++) { @@ -76,13 +76,13 @@ function setUpFields($amount = 3) { return $field_names; } - function setUpInstances($bundle = 'page') { + function setUpFields($bundle = 'page') { foreach ($this->fieldStorages as $key => $field_storage) { - $this->instances[$key] = entity_create('field_instance_config', array( + $this->fields[$key] = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $bundle, )); - $this->instances[$key]->save(); + $this->fields[$key]->save(); } } diff --git a/core/modules/field/src/Tests/Views/FieldUITest.php b/core/modules/field/src/Tests/Views/FieldUITest.php index c38aaee..022cb52 100644 --- a/core/modules/field/src/Tests/Views/FieldUITest.php +++ b/core/modules/field/src/Tests/Views/FieldUITest.php @@ -47,8 +47,8 @@ protected function setUp() { $this->account = $this->drupalCreateUser(array('administer views')); $this->drupalLogin($this->account); + $this->setUpFieldStorages(); $this->setUpFields(); - $this->setUpInstances(); } /** diff --git a/core/modules/field/src/Tests/Views/HandlerFieldFieldTest.php b/core/modules/field/src/Tests/Views/HandlerFieldFieldTest.php index e575a02..8f7da9f 100644 --- a/core/modules/field/src/Tests/Views/HandlerFieldFieldTest.php +++ b/core/modules/field/src/Tests/Views/HandlerFieldFieldTest.php @@ -39,7 +39,7 @@ protected function setUp() { parent::setUp(); // Setup basic fields. - $this->setUpFields(3); + $this->setUpFieldStorages(3); // Setup a field with cardinality > 1. $this->fieldStorages[3] = entity_create('field_storage_config', array( @@ -58,7 +58,7 @@ protected function setUp() { )); $this->fieldStorages[4]->save(); - $this->setUpInstances(); + $this->setUpFields(); // Create some nodes. $this->nodes = array(); diff --git a/core/modules/field/src/Tests/reEnableModuleFieldTest.php b/core/modules/field/src/Tests/reEnableModuleFieldTest.php index dcbd20a..c7bdcf6 100644 --- a/core/modules/field/src/Tests/reEnableModuleFieldTest.php +++ b/core/modules/field/src/Tests/reEnableModuleFieldTest.php @@ -49,7 +49,7 @@ function testReEnabledField() { 'type' => 'telephone', )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'article', 'label' => 'Telephone Number', diff --git a/core/modules/field/tests/modules/field_test/field_test.module b/core/modules/field/tests/modules/field_test/field_test.module index 499c883..e805c0f 100644 --- a/core/modules/field/tests/modules/field_test/field_test.module +++ b/core/modules/field/tests/modules/field_test/field_test.module @@ -128,7 +128,7 @@ function field_test_field_widget_form_alter(&$element, FormStateInterface $form_ break; } // Set a message if this is for the form displayed to set default value for - // the field instance. + // the field. if ($context['default']) { drupal_set_message('From hook_field_widget_form_alter(): Default form is true.'); } diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php index 5234964..f8a5a60 100644 --- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php +++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php @@ -39,11 +39,11 @@ public static function defaultSettings() { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array( - 'test_instance_setting' => 'dummy test string', + 'test_field_setting' => 'dummy test string', 'test_cached_data' => FALSE, - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); } /** @@ -92,13 +92,13 @@ public function settingsForm(array &$form, FormStateInterface $form_state, $has_ /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { - $form['test_instance_setting'] = array( + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { + $form['test_field_setting'] = array( '#type' => 'textfield', - '#title' => t('Field test field instance setting'), - '#default_value' => $this->getSetting('test_instance_setting'), + '#title' => t('Field test field setting'), + '#default_value' => $this->getSetting('test_field_setting'), '#required' => FALSE, - '#description' => t('A dummy form element to simulate field instance setting.'), + '#description' => t('A dummy form element to simulate field setting.'), ); return $form; diff --git a/core/modules/field/tests/modules/field_test_config/config/install/field.instance.entity_test.entity_test.field_test_import.yml b/core/modules/field/tests/modules/field_test_config/config/install/field.field.entity_test.entity_test.field_test_import.yml similarity index 100% rename from core/modules/field/tests/modules/field_test_config/config/install/field.instance.entity_test.entity_test.field_test_import.yml rename to core/modules/field/tests/modules/field_test_config/config/install/field.field.entity_test.entity_test.field_test_import.yml diff --git a/core/modules/field/tests/modules/field_test_config/config/install/field.instance.entity_test.entity_test.field_test_import_2.yml b/core/modules/field/tests/modules/field_test_config/config/install/field.field.entity_test.entity_test.field_test_import_2.yml similarity index 100% rename from core/modules/field/tests/modules/field_test_config/config/install/field.instance.entity_test.entity_test.field_test_import_2.yml rename to core/modules/field/tests/modules/field_test_config/config/install/field.field.entity_test.entity_test.field_test_import_2.yml diff --git a/core/modules/field/tests/modules/field_test_config/config/install/field.instance.entity_test.test_bundle.field_test_import_2.yml b/core/modules/field/tests/modules/field_test_config/config/install/field.field.entity_test.test_bundle.field_test_import_2.yml similarity index 100% rename from core/modules/field/tests/modules/field_test_config/config/install/field.instance.entity_test.test_bundle.field_test_import_2.yml rename to core/modules/field/tests/modules/field_test_config/config/install/field.field.entity_test.test_bundle.field_test_import_2.yml diff --git a/core/modules/field/tests/modules/field_test_config/staging/field.instance.entity_test.entity_test.field_test_import_staging.yml b/core/modules/field/tests/modules/field_test_config/staging/field.field.entity_test.entity_test.field_test_import_staging.yml similarity index 100% rename from core/modules/field/tests/modules/field_test_config/staging/field.instance.entity_test.entity_test.field_test_import_staging.yml rename to core/modules/field/tests/modules/field_test_config/staging/field.field.entity_test.entity_test.field_test_import_staging.yml diff --git a/core/modules/field/tests/modules/field_test_config/staging/field.instance.entity_test.test_bundle.field_test_import_staging_2.yml b/core/modules/field/tests/modules/field_test_config/staging/field.field.entity_test.test_bundle.field_test_import_staging_2.yml similarity index 100% rename from core/modules/field/tests/modules/field_test_config/staging/field.instance.entity_test.test_bundle.field_test_import_staging_2.yml rename to core/modules/field/tests/modules/field_test_config/staging/field.field.entity_test.test_bundle.field_test_import_staging_2.yml diff --git a/core/modules/field/tests/modules/field_test_config/staging/field.instance.entity_test.test_bundle_2.field_test_import_staging_2.yml b/core/modules/field/tests/modules/field_test_config/staging/field.field.entity_test.test_bundle_2.field_test_import_staging_2.yml similarity index 100% rename from core/modules/field/tests/modules/field_test_config/staging/field.instance.entity_test.test_bundle_2.field_test_import_staging_2.yml rename to core/modules/field/tests/modules/field_test_config/staging/field.field.entity_test.test_bundle_2.field_test_import_staging_2.yml diff --git a/core/modules/field/tests/src/FieldInstanceConfigEntityUnitTest.php b/core/modules/field/tests/src/FieldConfigEntityUnitTest.php similarity index 88% rename from core/modules/field/tests/src/FieldInstanceConfigEntityUnitTest.php rename to core/modules/field/tests/src/FieldConfigEntityUnitTest.php index 56f2857..7a4e22c 100644 --- a/core/modules/field/tests/src/FieldInstanceConfigEntityUnitTest.php +++ b/core/modules/field/tests/src/FieldConfigEntityUnitTest.php @@ -2,21 +2,21 @@ /** * @file - * Contains \Drupal\field\Tests\FieldInstanceConfigEntityUnitTest. + * Contains \Drupal\field\Tests\FieldConfigEntityUnitTest. */ namespace Drupal\field\Tests; use Drupal\Core\Language\LanguageInterface; use Drupal\Core\DependencyInjection\ContainerBuilder; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\Tests\UnitTestCase; /** - * @coversDefaultClass \Drupal\field\Entity\FieldInstanceConfig + * @coversDefaultClass \Drupal\field\Entity\FieldConfig * @group field */ -class FieldInstanceConfigEntityUnitTest extends UnitTestCase { +class FieldConfigEntityUnitTest extends UnitTestCase { /** * The entity type used for testing. @@ -125,13 +125,13 @@ public function testCalculateDependencies() { ->method('getConfigDependencyName') ->will($this->returnValue('field.storage.test_entity_type.test_field')); - $instance = new FieldInstanceConfig(array( + $field = new FieldConfig(array( 'field_name' => $this->fieldStorage->getName(), 'entity_type' => 'test_entity_type', 'bundle' => 'test_bundle', 'field_type' => 'test_field', ), $this->entityTypeId); - $dependencies = $instance->calculateDependencies(); + $dependencies = $field->calculateDependencies(); $this->assertContains('field.storage.test_entity_type.test_field', $dependencies['entity']); $this->assertContains('test.test_entity_type.id', $dependencies['entity']); } @@ -140,7 +140,7 @@ public function testCalculateDependencies() { * @covers ::toArray() */ public function testToArray() { - $instance = new FieldInstanceConfig(array( + $field = new FieldConfig(array( 'field_name' => $this->fieldStorage->getName(), 'entity_type' => 'test_entity_type', 'bundle' => 'test_bundle', @@ -165,9 +165,9 @@ public function testToArray() { 'field_type' => 'test_field', ); $this->entityManager->expects($this->any()) - ->method('getDefinition') - ->with($this->entityTypeId) - ->will($this->returnValue($this->entityType)); + ->method('getDefinition') + ->with($this->entityTypeId) + ->will($this->returnValue($this->entityType)); $this->entityType->expects($this->once()) ->method('getKey') ->with('id') @@ -176,7 +176,7 @@ public function testToArray() { ->method('getDefinition') ->will($this->returnValue(array('mapping' => array_fill_keys(array_keys($expected), '')))); - $export = $instance->toArray(); + $export = $field->toArray(); $this->assertEquals($expected, $export); } @@ -184,21 +184,21 @@ public function testToArray() { * @covers ::getType */ public function testGetType() { - // Ensure that FieldInstanceConfig::getType() is not delegated to + // Ensure that FieldConfig::getType() is not delegated to // FieldStorage. $this->entityManager->expects($this->never()) ->method('getFieldStorageDefinitions'); $this->fieldStorage->expects($this->never()) ->method('getType'); - $instance = new FieldInstanceConfig(array( + $field = new FieldConfig(array( 'field_name' => $this->fieldStorage->getName(), 'entity_type' => 'test_entity_type', 'bundle' => 'test_bundle', 'field_type' => 'test_field', ), $this->entityTypeId); - $this->assertEquals('test_field', $instance->getType()); + $this->assertEquals('test_field', $field->getType()); } } diff --git a/core/modules/field_ui/field_ui.module b/core/modules/field_ui/field_ui.module index 696d07a..d5578b6 100644 --- a/core/modules/field_ui/field_ui.module +++ b/core/modules/field_ui/field_ui.module @@ -109,8 +109,8 @@ function field_ui_element_info() { */ function field_ui_entity_type_build(array &$entity_types) { /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */ - $entity_types['field_instance_config']->setFormClass('delete', 'Drupal\field_ui\Form\FieldInstanceConfigDeleteForm'); - $entity_types['field_instance_config']->setListBuilderClass('Drupal\field_ui\FieldInstanceConfigListBuilder'); + $entity_types['field_config']->setFormClass('delete', 'Drupal\field_ui\Form\FieldConfigDeleteForm'); + $entity_types['field_config']->setListBuilderClass('Drupal\field_ui\FieldConfigListBuilder'); $entity_types['field_storage_config']->setListBuilderClass('Drupal\field_ui\FieldStorageConfigListBuilder'); foreach ($entity_types as $entity_type) { diff --git a/core/modules/field_ui/src/DisplayOverviewBase.php b/core/modules/field_ui/src/DisplayOverviewBase.php index 1bad243..4c649ff 100644 --- a/core/modules/field_ui/src/DisplayOverviewBase.php +++ b/core/modules/field_ui/src/DisplayOverviewBase.php @@ -508,7 +508,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { // Collect data for 'regular' fields. foreach ($form['#fields'] as $field_name) { - // Retrieve the stored instance settings to merge with the incoming + // Retrieve the stored field settings to merge with the incoming // values. $values = $form_values['fields'][$field_name]; @@ -716,7 +716,7 @@ protected function getExtraFields() { * Returns the widget or formatter plugin for a field. * * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition - * The field instance. + * The field. * @param array $configuration * The plugin configuration * diff --git a/core/modules/field_ui/src/FieldInstanceConfigListBuilder.php b/core/modules/field_ui/src/FieldConfigListBuilder.php similarity index 79% rename from core/modules/field_ui/src/FieldInstanceConfigListBuilder.php rename to core/modules/field_ui/src/FieldConfigListBuilder.php index 74252e0..f4f76b5 100644 --- a/core/modules/field_ui/src/FieldInstanceConfigListBuilder.php +++ b/core/modules/field_ui/src/FieldConfigListBuilder.php @@ -2,7 +2,7 @@ /** * @file - * Contains \Drupal\field_ui\FieldInstanceConfigListBuilder. + * Contains \Drupal\field_ui\FieldConfigListBuilder. */ namespace Drupal\field_ui; @@ -14,9 +14,9 @@ use Symfony\Component\DependencyInjection\ContainerInterface; /** - * Provides lists of field instance config entities. + * Provides lists of field config entities. */ -class FieldInstanceConfigListBuilder extends ConfigEntityListBuilder { +class FieldConfigListBuilder extends ConfigEntityListBuilder { /** * The entity manager. @@ -49,7 +49,7 @@ public static function createInstance(ContainerInterface $container, EntityTypeI * {@inheritdoc} */ public function render() { - // The actual field instance config overview is rendered by + // The actual field config overview is rendered by // \Drupal\field_ui\FieldOverview, so we should not use this class to build // lists. throw new \Exception('This class is only used for operations and not for building lists.'); @@ -59,16 +59,16 @@ public function render() { * {@inheritdoc} */ public function getDefaultOperations(EntityInterface $entity) { - /** @var \Drupal\field\FieldInstanceConfigInterface $entity */ + /** @var \Drupal\field\FieldConfigInterface $entity */ $operations = parent::getDefaultOperations($entity); $operations['storage-settings'] = array( - 'title' => $this->t('Field settings'), + 'title' => $this->t('Storage settings'), 'weight' => 20, - 'attributes' => array('title' => $this->t('Edit field settings.')), + 'attributes' => array('title' => $this->t('Edit storage settings.')), ) + $entity->urlInfo('storage-edit-form')->toArray(); - $operations['edit']['attributes']['title'] = $this->t('Edit instance settings.'); - $operations['delete']['attributes']['title'] = $this->t('Delete instance.'); + $operations['edit']['attributes']['title'] = $this->t('Edit field settings.'); + $operations['delete']['attributes']['title'] = $this->t('Delete field.'); return $operations; } diff --git a/core/modules/field_ui/src/FieldOverview.php b/core/modules/field_ui/src/FieldOverview.php index 6d5f15f..d5abb97 100644 --- a/core/modules/field_ui/src/FieldOverview.php +++ b/core/modules/field_ui/src/FieldOverview.php @@ -17,7 +17,7 @@ use Drupal\field_ui\OverviewBase; use Symfony\Component\DependencyInjection\ContainerInterface; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; /** * Field UI field overview form. @@ -82,8 +82,8 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t parent::buildForm($form, $form_state, $entity_type_id, $bundle); // Gather bundle information. - $instances = array_filter(\Drupal::entityManager()->getFieldDefinitions($this->entity_type, $this->bundle), function ($field_definition) { - return $field_definition instanceof FieldInstanceConfigInterface; + $fields = array_filter(\Drupal::entityManager()->getFieldDefinitions($this->entity_type, $this->bundle), function ($field_definition) { + return $field_definition instanceof FieldConfigInterface; }); $field_types = $this->fieldTypeManager->getDefinitions(); @@ -93,7 +93,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t $form += array( '#entity_type' => $this->entity_type, '#bundle' => $this->bundle, - '#fields' => array_keys($instances), + '#fields' => array_keys($fields), ); $table = array( @@ -116,21 +116,21 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t ); // Fields. - foreach ($instances as $name => $instance) { - $field_storage = $instance->getFieldStorageDefinition(); + foreach ($fields as $name => $field) { + $field_storage = $field->getFieldStorageDefinition(); $route_parameters = array( $this->bundleEntityType => $this->bundle, - 'field_instance_config' => $instance->id(), + 'field_config' => $field->id(), ); $table[$name] = array( '#attributes' => array( 'id' => drupal_html_class($name), ), 'label' => array( - '#markup' => String::checkPlain($instance->getLabel()), + '#markup' => String::checkPlain($field->getLabel()), ), 'field_name' => array( - '#markup' => $instance->getName(), + '#markup' => $field->getName(), ), 'type' => array( '#type' => 'link', @@ -143,7 +143,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t $table[$name]['operations']['data'] = array( '#type' => 'operations', - '#links' => $this->entityManager->getListBuilder('field_instance_config')->getOperations($instance), + '#links' => $this->entityManager->getListBuilder('field_config')->getOperations($field), ); if (!empty($field_storage->locked)) { @@ -375,7 +375,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { 'type' => $values['type'], 'translatable' => $values['translatable'], ); - $instance = array( + $field = array( 'field_name' => $values['field_name'], 'entity_type' => $this->entity_type, 'bundle' => $this->bundle, @@ -384,11 +384,11 @@ public function submitForm(array &$form, FormStateInterface $form_state) { 'translatable' => FALSE, ); - // Create the field and instance. + // Create the field storage and field. try { $this->entityManager->getStorage('field_storage_config')->create($field_storage)->save(); - $new_instance = $this->entityManager->getStorage('field_instance_config')->create($instance); - $new_instance->save(); + $new_field = $this->entityManager->getStorage('field_config')->create($field); + $new_field->save(); // Make sure the field is displayed in the 'default' form mode (using // default widget and settings). It stays hidden for other form modes @@ -408,17 +408,17 @@ public function submitForm(array &$form, FormStateInterface $form_state) { // configured for new fields. $route_parameters = array( $this->bundleEntityType => $this->bundle, - 'field_instance_config' => $new_instance->id(), + 'field_config' => $new_field->id(), ); $destinations[] = array('route_name' => 'field_ui.storage_edit_' . $this->entity_type, 'route_parameters' => $route_parameters); - $destinations[] = array('route_name' => 'field_ui.instance_edit_' . $this->entity_type, 'route_parameters' => $route_parameters); + $destinations[] = array('route_name' => 'field_ui.field_edit_' . $this->entity_type, 'route_parameters' => $route_parameters); // Store new field information for any additional submit handlers. $form_state['fields_added']['_add_new_field'] = $values['field_name']; } catch (\Exception $e) { $error = TRUE; - drupal_set_message($this->t('There was a problem creating field %label: !message', array('%label' => $instance['label'], '!message' => $e->getMessage())), 'error'); + drupal_set_message($this->t('There was a problem creating field %label: !message', array('%label' => $field['label'], '!message' => $e->getMessage())), 'error'); } } @@ -431,7 +431,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { drupal_set_message($this->t('The field %label cannot be added because it is locked.', array('%label' => $values['label'])), 'error'); } else { - $instance = array( + $field = array( 'field_name' => $field_name, 'entity_type' => $this->entity_type, 'bundle' => $this->bundle, @@ -439,8 +439,8 @@ public function submitForm(array &$form, FormStateInterface $form_state) { ); try { - $new_instance = $this->entityManager->getStorage('field_instance_config')->create($instance); - $new_instance->save(); + $new_field = $this->entityManager->getStorage('field_config')->create($field); + $new_field->save(); // Make sure the field is displayed in the 'default' form mode (using // default widget and settings). It stays hidden for other form modes @@ -457,18 +457,18 @@ public function submitForm(array &$form, FormStateInterface $form_state) { ->save(); $destinations[] = array( - 'route_name' => 'field_ui.instance_edit_' . $this->entity_type, + 'route_name' => 'field_ui.field_edit_' . $this->entity_type, 'route_parameters' => array( $this->bundleEntityType => $this->bundle, - 'field_instance_config' => $new_instance->id(), + 'field_config' => $new_field->id(), ), ); // Store new field information for any additional submit handlers. - $form_state['fields_added']['_add_existing_field'] = $instance['field_name']; + $form_state['fields_added']['_add_existing_field'] = $field['field_name']; } catch (\Exception $e) { $error = TRUE; - drupal_set_message($this->t('There was a problem creating field instance %label: @message.', array('%label' => $instance['label'], '@message' => $e->getMessage())), 'error'); + drupal_set_message($this->t('There was a problem creating field %label: @message.', array('%label' => $field['label'], '@message' => $e->getMessage())), 'error'); } } } @@ -492,35 +492,35 @@ public function submitForm(array &$form, FormStateInterface $form_state) { protected function getExistingFieldOptions() { $options = array(); - // Collect candidate field instances: all instances of fields for this + // Collect candidate fields: all fields of field storages for this // entity type that are not already present in the current bundle. $field_map = \Drupal::entityManager()->getFieldMap(); - $instance_ids = array(); + $field_ids = array(); if (!empty($field_map[$this->entity_type])) { foreach ($field_map[$this->entity_type] as $field_name => $data) { if (!in_array($this->bundle, $data['bundles'])) { $bundle = reset($data['bundles']); - $instance_ids[] = $this->entity_type . '.' . $bundle . '.' . $field_name; + $field_ids[] = $this->entity_type . '.' . $bundle . '.' . $field_name; } } } - // Load the instances and build the list of options. - if ($instance_ids) { + // Load the fields and build the list of options. + if ($field_ids) { $field_types = $this->fieldTypeManager->getDefinitions(); - $instances = $this->entityManager->getStorage('field_instance_config')->loadMultiple($instance_ids); - foreach ($instances as $instance) { + $fields = $this->entityManager->getStorage('field_config')->loadMultiple($field_ids); + foreach ($fields as $field) { // Do not show: // - locked fields, // - fields that should not be added via user interface. - $field_type = $instance->getType(); - $field_storage = $instance->getFieldStorageDefinition(); + $field_type = $field->getType(); + $field_storage = $field->getFieldStorageDefinition(); if (empty($field_storage->locked) && empty($field_types[$field_type]['no_ui'])) { - $options[$instance->getName()] = array( + $options[$field->getName()] = array( 'type' => $field_type, 'type_label' => $field_types[$field_type]['label'], - 'field' => $instance->getName(), - 'label' => $instance->getLabel(), + 'field' => $field->getName(), + 'label' => $field->getLabel(), ); } } diff --git a/core/modules/field_ui/src/Form/FieldInstanceConfigDeleteForm.php b/core/modules/field_ui/src/Form/FieldConfigDeleteForm.php similarity index 89% rename from core/modules/field_ui/src/Form/FieldInstanceConfigDeleteForm.php rename to core/modules/field_ui/src/Form/FieldConfigDeleteForm.php index 97470db..4599954 100644 --- a/core/modules/field_ui/src/Form/FieldInstanceConfigDeleteForm.php +++ b/core/modules/field_ui/src/Form/FieldConfigDeleteForm.php @@ -2,7 +2,7 @@ /** * @file - * Contains \Drupal\field_ui\Form\FieldInstanceConfigDeleteForm. + * Contains \Drupal\field_ui\Form\FieldConfigDeleteForm. */ namespace Drupal\field_ui\Form; @@ -14,9 +14,9 @@ use Symfony\Component\DependencyInjection\ContainerInterface; /** - * Provides a form for removing a field instance from a bundle. + * Provides a form for removing a field from a bundle. */ -class FieldInstanceConfigDeleteForm extends EntityConfirmFormBase { +class FieldConfigDeleteForm extends EntityConfirmFormBase { /** * The entity manager. @@ -26,7 +26,7 @@ class FieldInstanceConfigDeleteForm extends EntityConfirmFormBase { protected $entityManager; /** - * Constructs a new FieldInstanceConfigDeleteForm object. + * Constructs a new FieldConfigDeleteForm object. * * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager * The entity manager. @@ -88,7 +88,7 @@ public function submit(array $form, FormStateInterface $form_state) { // purged. In the case that a field has minimal or no content, a single call // to field_purge_batch() will remove it from the system. Call this with a // low batch limit to avoid administrators having to wait for cron runs when - // removing instances that meet this criteria. + // removing fields that meet this criteria. field_purge_batch(10); } diff --git a/core/modules/field_ui/src/Form/FieldInstanceEditForm.php b/core/modules/field_ui/src/Form/FieldEditForm.php similarity index 54% rename from core/modules/field_ui/src/Form/FieldInstanceEditForm.php rename to core/modules/field_ui/src/Form/FieldEditForm.php index bc72248..1dd72e3 100644 --- a/core/modules/field_ui/src/Form/FieldInstanceEditForm.php +++ b/core/modules/field_ui/src/Form/FieldEditForm.php @@ -2,7 +2,7 @@ /** * @file - * Contains \Drupal\field_ui\Form\FieldInstanceEditForm. + * Contains \Drupal\field_ui\Form\FieldEditForm. */ namespace Drupal\field_ui\Form; @@ -11,21 +11,21 @@ use Drupal\Core\Form\FormBase; use Drupal\Component\Utility\String; use Drupal\Core\Form\FormStateInterface; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; use Drupal\field_ui\FieldUI; use Symfony\Component\DependencyInjection\ContainerInterface; /** - * Provides a form for the field instance settings form. + * Provides a form for the field settings form. */ -class FieldInstanceEditForm extends FormBase { +class FieldEditForm extends FormBase { /** - * The field instance being edited. + * The field being edited. * - * @var \Drupal\field\FieldInstanceConfigInterface + * @var \Drupal\field\FieldConfigInterface */ - protected $instance; + protected $field; /** * The entity manager. @@ -35,7 +35,7 @@ class FieldInstanceEditForm extends FormBase { protected $entityManager; /** - * Constructs a new field instance form. + * Constructs a new field form. * * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager * The entity manager. @@ -57,86 +57,86 @@ public static function create(ContainerInterface $container) { * {@inheritdoc} */ public function getFormId() { - return 'field_ui_field_instance_edit_form'; + return 'field_ui_field_edit_form'; } /** * {@inheritdoc} */ - public function buildForm(array $form, FormStateInterface $form_state, FieldInstanceConfigInterface $field_instance_config = NULL) { - $this->instance = $form_state['instance'] = $field_instance_config; + public function buildForm(array $form, FormStateInterface $form_state, FieldConfigInterface $field_config = NULL) { + $this->field = $form_state['field'] = $field_config; - $bundle = $this->instance->bundle; - $entity_type = $this->instance->entity_type; - $field_storage = $this->instance->getFieldStorageDefinition(); + $bundle = $this->field->bundle; + $entity_type = $this->field->entity_type; + $field_storage = $this->field->getFieldStorageDefinition(); $bundles = entity_get_bundles(); - $form_title = $this->t('%instance settings for %bundle', array( - '%instance' => $this->instance->getLabel(), + $form_title = $this->t('%field settings for %bundle', array( + '%field' => $this->field->getLabel(), '%bundle' => $bundles[$entity_type][$bundle]['label'], )); $form['#title'] = $form_title; $form['#field'] = $field_storage; // Create an arbitrary entity object (used by the 'default value' widget). - $ids = (object) array('entity_type' => $this->instance->entity_type, 'bundle' => $this->instance->bundle, 'entity_id' => NULL); + $ids = (object) array('entity_type' => $this->field->entity_type, 'bundle' => $this->field->bundle, 'entity_id' => NULL); $form['#entity'] = _field_create_entity_from_ids($ids); - $items = $form['#entity']->get($this->instance->getName()); + $items = $form['#entity']->get($this->field->getName()); if (!empty($field_storage->locked)) { $form['locked'] = array( - '#markup' => $this->t('The field %field is locked and cannot be edited.', array('%field' => $this->instance->getLabel())), + '#markup' => $this->t('The field %field is locked and cannot be edited.', array('%field' => $this->field->getLabel())), ); return $form; } - // Create a form structure for the instance values. - $form['instance'] = array( + // Create a form structure for the field values. + $form['field'] = array( '#tree' => TRUE, ); - // Build the non-configurable instance values. - $form['instance']['field_name'] = array( + // Build the non-configurable field values. + $form['field']['field_name'] = array( '#type' => 'value', - '#value' => $this->instance->getName(), + '#value' => $this->field->getName(), ); - $form['instance']['entity_type'] = array( + $form['field']['entity_type'] = array( '#type' => 'value', '#value' => $entity_type, ); - $form['instance']['bundle'] = array( + $form['field']['bundle'] = array( '#type' => 'value', '#value' => $bundle, ); - // Build the configurable instance values. - $form['instance']['label'] = array( + // Build the configurable field values. + $form['field']['label'] = array( '#type' => 'textfield', '#title' => $this->t('Label'), - '#default_value' => $this->instance->getLabel() ?: $field_storage->getName(), + '#default_value' => $this->field->getLabel() ?: $field_storage->getName(), '#required' => TRUE, '#weight' => -20, ); - $form['instance']['description'] = array( + $form['field']['description'] = array( '#type' => 'textarea', '#title' => $this->t('Help text'), - '#default_value' => $this->instance->getDescription(), + '#default_value' => $this->field->getDescription(), '#rows' => 5, '#description' => $this->t('Instructions to present to the user below this field on the editing form.
Allowed HTML tags: @tags', array('@tags' => _field_filter_xss_display_allowed_tags())) . '
' . $this->t('This field supports tokens.'), '#weight' => -10, ); - $form['instance']['required'] = array( + $form['field']['required'] = array( '#type' => 'checkbox', '#title' => $this->t('Required field'), - '#default_value' => $this->instance->isRequired(), + '#default_value' => $this->field->isRequired(), '#weight' => -5, ); - // Add instance settings for the field type. - $form['instance']['settings'] = $items[0]->instanceSettingsForm($form, $form_state); - $form['instance']['settings']['#weight'] = 10; + // Add field settings for the field type. + $form['field']['settings'] = $items[0]->fieldSettingsForm($form, $form_state); + $form['field']['settings']['#weight'] = 10; // Add handling for default value. if ($element = $items->defaultValuesForm($form, $form_state)) { @@ -146,7 +146,8 @@ public function buildForm(array $form, FormStateInterface $form_state, FieldInst '#open' => TRUE, '#description' => $this->t('The default value for this field, used when creating new content.'), )); - $form['instance']['default_value'] = $element; + + $form['field']['default_value'] = $element; } $form['actions'] = array('#type' => 'actions'); @@ -166,9 +167,9 @@ public function buildForm(array $form, FormStateInterface $form_state, FieldInst * {@inheritdoc} */ public function validateForm(array &$form, FormStateInterface $form_state) { - if (isset($form['instance']['default_value'])) { - $items = $form['#entity']->get($this->instance->getName()); - $items->defaultValuesFormValidate($form['instance']['default_value'], $form, $form_state); + if (isset($form['field']['default_value'])) { + $items = $form['#entity']->get($this->field->getName()); + $items->defaultValuesFormValidate($form['field']['default_value'], $form, $form_state); } } @@ -178,19 +179,19 @@ public function validateForm(array &$form, FormStateInterface $form_state) { public function submitForm(array &$form, FormStateInterface $form_state) { // Handle the default value. $default_value = array(); - if (isset($form['instance']['default_value'])) { - $items = $form['#entity']->get($this->instance->getName()); - $default_value = $items->defaultValuesFormSubmit($form['instance']['default_value'], $form, $form_state); + if (isset($form['field']['default_value'])) { + $items = $form['#entity']->get($this->field->getName()); + $default_value = $items->defaultValuesFormSubmit($form['field']['default_value'], $form, $form_state); } - $this->instance->default_value = $default_value; + $this->field->default_value = $default_value; - // Merge incoming values into the instance. - foreach ($form_state->getValue('instance') as $key => $value) { - $this->instance->$key = $value; + // Merge incoming values into the field. + foreach ($form_state->getValue('field') as $key => $value) { + $this->field->$key = $value; } - $this->instance->save(); + $this->field->save(); - drupal_set_message($this->t('Saved %label configuration.', array('%label' => $this->instance->getLabel()))); + drupal_set_message($this->t('Saved %label configuration.', array('%label' => $this->field->getLabel()))); $request = $this->getRequest(); if (($destinations = $request->query->get('destinations')) && $next_destination = FieldUI::getNextDestination($destinations)) { @@ -198,12 +199,12 @@ public function submitForm(array &$form, FormStateInterface $form_state) { $form_state->setRedirectUrl($next_destination); } else { - $form_state->setRedirectUrl(FieldUI::getOverviewRouteInfo($this->instance->entity_type, $this->instance->bundle)); + $form_state->setRedirectUrl(FieldUI::getOverviewRouteInfo($this->field->entity_type, $this->field->bundle)); } } /** - * Redirects to the field instance deletion form. + * Redirects to the field deletion form. */ public function delete(array &$form, FormStateInterface $form_state) { $destination = array(); @@ -212,28 +213,28 @@ public function delete(array &$form, FormStateInterface $form_state) { $destination = drupal_get_destination(); $request->query->remove('destination'); } - $entity_type = $this->entityManager->getDefinition($this->instance->entity_type); + $entity_type = $this->entityManager->getDefinition($this->field->entity_type); $form_state->setRedirect( - 'field_ui.delete_' . $this->instance->entity_type, + 'field_ui.delete_' . $this->field->entity_type, array( - $entity_type->getBundleEntityType() => $this->instance->bundle, - 'field_instance_config' => $this->instance->id(), + $entity_type->getBundleEntityType() => $this->field->bundle, + 'field_config' => $this->field->id(), ), array('query' => $destination) ); } /** - * The _title_callback for the field instance settings form. + * The _title_callback for the field settings form. * - * @param \Drupal\field\FieldInstanceConfigInterface $field_instance_config - * The field instance. + * @param \Drupal\field\FieldConfigInterface $field_config + * The field. * * @return string - * The label of the field instance. + * The label of the field. */ - public function getTitle(FieldInstanceConfigInterface $field_instance_config) { - return String::checkPlain($field_instance_config->label()); + public function getTitle(FieldConfigInterface $field_config) { + return String::checkPlain($field_config->label()); } } diff --git a/core/modules/field_ui/src/Form/FieldStorageEditForm.php b/core/modules/field_ui/src/Form/FieldStorageEditForm.php index 903a614..05c4fbb 100644 --- a/core/modules/field_ui/src/Form/FieldStorageEditForm.php +++ b/core/modules/field_ui/src/Form/FieldStorageEditForm.php @@ -12,7 +12,7 @@ use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\TypedData\TypedDataManager; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; use Drupal\field_ui\FieldUI; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -22,11 +22,11 @@ class FieldStorageEditForm extends FormBase { /** - * The field instance being edited. + * The field being edited. * - * @var \Drupal\field\FieldInstanceConfigInterface + * @var \Drupal\field\FieldConfigInterface */ - protected $instance; + protected $field; /** * The entity manager. @@ -75,15 +75,15 @@ public static function create(ContainerInterface $container) { /** * {@inheritdoc} */ - public function buildForm(array $form, FormStateInterface $form_state, FieldInstanceConfigInterface $field_instance_config = NULL) { - $this->instance = $form_state['instance'] = $field_instance_config; - $form['#title'] = $this->instance->label(); + public function buildForm(array $form, FormStateInterface $form_state, FieldConfigInterface $field_config = NULL) { + $this->field = $field_config; + $form['#title'] = $this->field->label(); - $field_storage = $this->instance->getFieldStorageDefinition(); + $field_storage = $this->field->getFieldStorageDefinition(); $form['#field'] = $field_storage; - $form['#bundle'] = $this->instance->bundle; + $form['#bundle'] = $this->field->bundle; - $description = '

' . $this->t('These settings apply to the %field field everywhere it is used. These settings impact the way that data is stored in the database and cannot be changed once data has been created.', array('%field' => $this->instance->label())) . '

'; + $description = '

' . $this->t('These settings apply to the %field field everywhere it is used. These settings impact the way that data is stored in the database and cannot be changed once data has been created.', array('%field' => $this->field->label())) . '

'; // Create a form structure for the field values. $form['field'] = array( @@ -148,7 +148,7 @@ public function buildForm(array $form, FormStateInterface $form_state, FieldInst ); // Create an arbitrary entity object, so that we can have an instantiated // FieldItem. - $ids = (object) array('entity_type' => $this->instance->entity_type, 'bundle' => $this->instance->bundle, 'entity_id' => NULL); + $ids = (object) array('entity_type' => $this->field->entity_type, 'bundle' => $this->field->bundle, 'entity_id' => NULL); $entity = _field_create_entity_from_ids($ids); $form['field']['settings'] += $entity->get($field_storage->getName())->first()->settingsForm($form, $form_state, $field_storage->hasData()); @@ -187,7 +187,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { unset($field_values['container']); // Merge incoming form values into the existing field. - $field_storage = $this->instance->getFieldStorageDefinition(); + $field_storage = $this->field->getFieldStorageDefinition(); foreach ($field_values as $key => $value) { $field_storage->{$key} = $value; } @@ -195,18 +195,18 @@ public function submitForm(array &$form, FormStateInterface $form_state) { // Update the field. try { $field_storage->save(); - drupal_set_message($this->t('Updated field %label field settings.', array('%label' => $this->instance->label()))); + drupal_set_message($this->t('Updated field %label field settings.', array('%label' => $this->field->label()))); $request = $this->getRequest(); if (($destinations = $request->query->get('destinations')) && $next_destination = FieldUI::getNextDestination($destinations)) { $request->query->remove('destinations'); $form_state->setRedirectUrl($next_destination); } else { - $form_state->setRedirectUrl(FieldUI::getOverviewRouteInfo($this->instance->entity_type, $this->instance->bundle)); + $form_state->setRedirectUrl(FieldUI::getOverviewRouteInfo($this->field->entity_type, $this->field->bundle)); } } catch (\Exception $e) { - drupal_set_message($this->t('Attempt to update field %label failed: %message.', array('%label' => $this->instance->label(), '%message' => $e->getMessage())), 'error'); + drupal_set_message($this->t('Attempt to update field %label failed: %message.', array('%label' => $this->field->label(), '%message' => $e->getMessage())), 'error'); } } diff --git a/core/modules/field_ui/src/Plugin/Derivative/FieldUiLocalTask.php b/core/modules/field_ui/src/Plugin/Derivative/FieldUiLocalTask.php index 758a98b..788392c 100644 --- a/core/modules/field_ui/src/Plugin/Derivative/FieldUiLocalTask.php +++ b/core/modules/field_ui/src/Plugin/Derivative/FieldUiLocalTask.php @@ -93,18 +93,18 @@ public function getDerivativeDefinitions($base_plugin_definition) { 'base_route' => "field_ui.overview_$entity_type_id", ); - // Field instance edit tab. - $this->derivatives["instance_edit_$entity_type_id"] = array( - 'route_name' => "field_ui.instance_edit_$entity_type_id", + // Field edit tab. + $this->derivatives["field_edit_$entity_type_id"] = array( + 'route_name' => "field_ui.field_edit_$entity_type_id", 'title' => $this->t('Edit'), - 'base_route' => "field_ui.instance_edit_$entity_type_id", + 'base_route' => "field_ui.field_edit_$entity_type_id", ); // Field settings tab. $this->derivatives["field_edit_$entity_type_id"] = array( 'route_name' => "field_ui.storage_edit_$entity_type_id", 'title' => $this->t('Field settings'), - 'base_route' => "field_ui.instance_edit_$entity_type_id", + 'base_route' => "field_ui.field_edit_$entity_type_id", ); // View and form modes secondary tabs. diff --git a/core/modules/field_ui/src/Routing/RouteSubscriber.php b/core/modules/field_ui/src/Routing/RouteSubscriber.php index 4b371ab..5fe9f36 100644 --- a/core/modules/field_ui/src/Routing/RouteSubscriber.php +++ b/core/modules/field_ui/src/Routing/RouteSubscriber.php @@ -56,28 +56,28 @@ protected function alterRoutes(RouteCollection $collection) { } $route = new Route( - "$path/fields/{field_instance_config}", + "$path/fields/{field_config}", array( - '_form' => '\Drupal\field_ui\Form\FieldInstanceEditForm', - '_title_callback' => '\Drupal\field_ui\Form\FieldInstanceEditForm::getTitle', + '_form' => '\Drupal\field_ui\Form\FieldEditForm', + '_title_callback' => '\Drupal\field_ui\Form\FieldEditForm::getTitle', ), - array('_entity_access' => 'field_instance_config.update'), + array('_entity_access' => 'field_config.update'), $options ); - $collection->add("field_ui.instance_edit_$entity_type_id", $route); + $collection->add("field_ui.field_edit_$entity_type_id", $route); $route = new Route( - "$path/fields/{field_instance_config}/storage", + "$path/fields/{field_config}/storage", array('_form' => '\Drupal\field_ui\Form\FieldStorageEditForm'), - array('_entity_access' => 'field_instance_config.update'), + array('_entity_access' => 'field_config.update'), $options ); $collection->add("field_ui.storage_edit_$entity_type_id", $route); $route = new Route( - "$path/fields/{field_instance_config}/delete", - array('_entity_form' => 'field_instance_config.delete'), - array('_entity_access' => 'field_instance_config.delete'), + "$path/fields/{field_config}/delete", + array('_entity_form' => 'field_config.delete'), + array('_entity_access' => 'field_config.delete'), $options ); $collection->add("field_ui.delete_$entity_type_id", $route); diff --git a/core/modules/field_ui/src/Tests/FieldUiTestBase.php b/core/modules/field_ui/src/Tests/FieldUiTestBase.php index 6157893..962acec 100644 --- a/core/modules/field_ui/src/Tests/FieldUiTestBase.php +++ b/core/modules/field_ui/src/Tests/FieldUiTestBase.php @@ -56,14 +56,14 @@ protected function setUp() { * @param $initial_edit * $edit parameter for drupalPostForm() on the first step ('Manage fields' * screen). + * @param $storage_edit + * $edit parameter for drupalPostForm() on the second step ('Storage + * settings' form). * @param $field_edit - * $edit parameter for drupalPostForm() on the second step ('Field settings' - * form). - * @param $instance_edit - * $edit parameter for drupalPostForm() on the third step ('Instance settings' + * $edit parameter for drupalPostForm() on the third step ('Field settings' * form). */ - function fieldUIAddNewField($bundle_path, $initial_edit, $field_edit = array(), $instance_edit = array()) { + function fieldUIAddNewField($bundle_path, $initial_edit, $storage_edit = array(), $field_edit = array()) { // Use 'test_field' field type by default. $initial_edit += array( 'fields[_add_new_field][type]' => 'test_field', @@ -76,12 +76,12 @@ function fieldUIAddNewField($bundle_path, $initial_edit, $field_edit = array(), // Test Breadcrumbs. $this->assertLink($label, 0, 'Field label is correct in the breadcrumb of the storage settings page.'); - // Second step : 'Field settings' form. - $this->drupalPostForm(NULL, $field_edit, t('Save field settings')); - $this->assertRaw(t('Updated field %label field settings.', array('%label' => $label)), 'Redirected to instance and widget settings page.'); + // Second step : 'Storage settings' form. + $this->drupalPostForm(NULL, $storage_edit, t('Save field settings')); + $this->assertRaw(t('Updated field %label field settings.', array('%label' => $label)), 'Redirected to field settings page.'); - // Third step : 'Instance settings' form. - $this->drupalPostForm(NULL, $instance_edit, t('Save settings')); + // Third step : 'Field settings' form. + $this->drupalPostForm(NULL, $field_edit, t('Save settings')); $this->assertRaw(t('Saved %label configuration.', array('%label' => $label)), 'Redirected to "Manage fields" page.'); // Check that the field appears in the overview form. @@ -96,18 +96,18 @@ function fieldUIAddNewField($bundle_path, $initial_edit, $field_edit = array(), * @param $initial_edit * $edit parameter for drupalPostForm() on the first step ('Manage fields' * screen). - * @param $instance_edit - * $edit parameter for drupalPostForm() on the second step ('Instance settings' + * @param $field_edit + * $edit parameter for drupalPostForm() on the second step ('Field settings' * form). */ - function fieldUIAddExistingField($bundle_path, $initial_edit, $instance_edit = array()) { + function fieldUIAddExistingField($bundle_path, $initial_edit, $field_edit = array()) { $label = $initial_edit['fields[_add_existing_field][label]']; // First step : 'Re-use existing field' on the 'Manage fields' page. $this->drupalPostForm("$bundle_path/fields", $initial_edit, t('Save')); - // Second step : 'Instance settings' form. - $this->drupalPostForm(NULL, $instance_edit, t('Save settings')); + // Second step : 'Field settings' form. + $this->drupalPostForm(NULL, $field_edit, t('Save settings')); $this->assertRaw(t('Saved %label configuration.', array('%label' => $label)), 'Redirected to "Manage fields" page.'); // Check that the field appears in the overview form. @@ -115,10 +115,10 @@ function fieldUIAddExistingField($bundle_path, $initial_edit, $instance_edit = a } /** - * Deletes a field instance through the Field UI. + * Deletes a field through the Field UI. * * @param $bundle_path - * Admin path of the bundle that the field instance is to be deleted from. + * Admin path of the bundle that the field is to be deleted from. * @param $field_name * The name of the field. * @param $label diff --git a/core/modules/field_ui/src/Tests/ManageDisplayTest.php b/core/modules/field_ui/src/Tests/ManageDisplayTest.php index 24ccc7d..8cb0a6f 100644 --- a/core/modules/field_ui/src/Tests/ManageDisplayTest.php +++ b/core/modules/field_ui/src/Tests/ManageDisplayTest.php @@ -40,7 +40,8 @@ function testFormatterUI() { ); $this->fieldUIAddNewField($manage_fields, $edit); - // Clear the test-side cache and get the saved field instance. + // Get the display options (formatter and settings) that were automatically + // assigned for the 'default' display. $display = entity_get_display('node', $this->type, 'default'); $display_options = $display->getComponent('field_test'); $format = $display_options['type']; @@ -157,7 +158,8 @@ public function testWidgetUI() { ); $this->fieldUIAddNewField($manage_fields, $edit); - // Clear the test-side cache and get the saved field instance. + // Get the display options (formatter and settings) that were automatically + // assigned for the 'default' display. $display = entity_get_form_display('node', $this->type, 'default'); $display_options = $display->getComponent('field_test'); $widget_type = $display_options['type']; @@ -330,7 +332,7 @@ public function testViewModeLocalTasks() { } /** - * Tests that field instances with no explicit display settings do not break. + * Tests that fields with no explicit display settings do not break. */ function testNonInitializedFields() { // Create a test field. diff --git a/core/modules/field_ui/src/Tests/ManageFieldsTest.php b/core/modules/field_ui/src/Tests/ManageFieldsTest.php index c137308..b745afa 100644 --- a/core/modules/field_ui/src/Tests/ManageFieldsTest.php +++ b/core/modules/field_ui/src/Tests/ManageFieldsTest.php @@ -10,7 +10,7 @@ use Drupal\Component\Utility\String; use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\Core\Language\LanguageInterface; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; /** @@ -46,7 +46,7 @@ protected function setUp() { 'type' => 'taxonomy_term_reference', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => 'field_' . $vocabulary->id(), 'entity_type' => 'node', 'label' => 'Tags', @@ -71,7 +71,7 @@ function testCRUDFields() { $this->addExistingField(); $this->cardinalitySettings(); $this->fieldListAdminPage(); - $this->deleteFieldInstance(); + $this->deleteField(); } /** @@ -101,7 +101,7 @@ function manageFieldsPage($type = '') { $this->assertText($element, format_string('"@element" was found.', array('@element' => $element))); } - // Assert entity operations for all field instances. + // Assert entity operations for all fields. $result = $this->xpath('//ul[@class = "dropbutton"]/li/a'); $url = base_path() . "admin/structure/types/manage/$type/fields/node.$type.body"; $this->assertIdentical($url, (string) $result[0]['href']); @@ -112,8 +112,8 @@ function manageFieldsPage($type = '') { /** * Tests adding a new field. * - * @todo Assert properties can bet set in the form and read back in $field and - * $instances. + * @todo Assert properties can bet set in the form and read back in + * $field_storage and $fields. */ function createField() { // Create a test field. @@ -128,9 +128,9 @@ function createField() { * Tests editing an existing field. */ function updateField() { - $instance_id = 'node.' . $this->type . '.' . $this->field_name; + $field_id = 'node.' . $this->type . '.' . $this->field_name; // Go to the field edit page. - $this->drupalGet('admin/structure/types/manage/' . $this->type . '/fields/' . $instance_id . '/storage'); + $this->drupalGet('admin/structure/types/manage/' . $this->type . '/fields/' . $field_id . '/storage'); // Populate the field settings with new settings. $string = 'updated dummy test string'; @@ -139,10 +139,10 @@ function updateField() { ); $this->drupalPostForm(NULL, $edit, t('Save field settings')); - // Go to the field instance edit page. - $this->drupalGet('admin/structure/types/manage/' . $this->type . '/fields/' . $instance_id); + // Go to the field edit page. + $this->drupalGet('admin/structure/types/manage/' . $this->type . '/fields/' . $field_id); $edit = array( - 'instance[settings][test_instance_setting]' => $string, + 'field[settings][test_field_setting]' => $string, ); $this->assertText(t('Default value'), 'Default value heading is shown'); $this->drupalPostForm(NULL, $edit, t('Save settings')); @@ -215,12 +215,12 @@ function cardinalitySettings() { } /** - * Tests deleting a field from the instance edit form. + * Tests deleting a field from the field edit form. */ - protected function deleteFieldInstance() { - // Delete the field instance. - $instance_id = 'node.' . $this->type . '.' . $this->field_name; - $this->drupalGet('admin/structure/types/manage/' . $this->type . '/fields/' . $instance_id); + protected function deleteField() { + // Delete the field. + $field_id = 'node.' . $this->type . '.' . $this->field_name; + $this->drupalGet('admin/structure/types/manage/' . $this->type . '/fields/' . $field_id); $this->drupalPostForm(NULL, array(), t('Delete field')); $this->assertResponse(200); } @@ -229,22 +229,22 @@ protected function deleteFieldInstance() { * Asserts field settings are as expected. * * @param $bundle - * The bundle name for the instance. + * The bundle name for the field. * @param $field_name - * The field name for the instance. + * The field name for the field. * @param $string * The settings text. * @param $entity_type - * The entity type for the instance. + * The entity type for the field. */ function assertFieldSettings($bundle, $field_name, $string = 'dummy test string', $entity_type = 'node') { // Assert field storage settings. $field_storage = FieldStorageConfig::loadByName($entity_type, $field_name); $this->assertTrue($field_storage->getSetting('test_field_storage_setting') == $string, 'Field storage settings were found.'); - // Assert instance settings. - $instance = FieldInstanceConfig::loadByName($entity_type, $bundle, $field_name); - $this->assertTrue($instance->getSetting('test_instance_setting') == $string, 'Field instance settings were found.'); + // Assert field settings. + $field = FieldConfig::loadByName($entity_type, $bundle, $field_name); + $this->assertTrue($field->getSetting('test_field_setting') == $string, 'Field settings were found.'); } /** @@ -281,25 +281,25 @@ function testFieldPrefix() { * Tests that default value is correctly validated and saved. */ function testDefaultValue() { - // Create a test field and instance. + // Create a test field storage and field. $field_name = 'test'; entity_create('field_storage_config', array( 'name' => $field_name, 'entity_type' => 'node', 'type' => 'test_field' ))->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => 'node', 'bundle' => $this->type, )); - $instance->save(); + $field->save(); entity_get_form_display('node', $this->type, 'default') ->setComponent($field_name) ->save(); - $admin_path = 'admin/structure/types/manage/' . $this->type . '/fields/' . $instance->id(); + $admin_path = 'admin/structure/types/manage/' . $this->type . '/fields/' . $field->id(); $element_id = "edit-default-value-input-$field_name-0-value"; $element_name = "default_value_input[{$field_name}][0][value]"; $this->drupalGet($admin_path); @@ -314,8 +314,8 @@ function testDefaultValue() { $edit = array($element_name => '1'); $this->drupalPostForm($admin_path, $edit, t('Save settings')); $this->assertText("Saved $field_name configuration", 'The form was successfully submitted.'); - $instance = FieldInstanceConfig::loadByName('node', $this->type, $field_name); - $this->assertEqual($instance->default_value, array(array('value' => 1)), 'The default value was correctly saved.'); + $field = FieldConfig::loadByName('node', $this->type, $field_name); + $this->assertEqual($field->default_value, array(array('value' => 1)), 'The default value was correctly saved.'); // Check that the default value shows up in the form $this->drupalGet($admin_path); @@ -325,18 +325,18 @@ function testDefaultValue() { $edit = array($element_name => ''); $this->drupalPostForm(NULL, $edit, t('Save settings')); $this->assertText("Saved $field_name configuration", 'The form was successfully submitted.'); - $instance = FieldInstanceConfig::loadByName('node', $this->type, $field_name); - $this->assertEqual($instance->default_value, NULL, 'The default value was correctly saved.'); + $field = FieldConfig::loadByName('node', $this->type, $field_name); + $this->assertEqual($field->default_value, NULL, 'The default value was correctly saved.'); // Check that the default widget is used when the field is hidden. - entity_get_form_display($instance->entity_type, $instance->bundle, 'default') + entity_get_form_display($field->entity_type, $field->bundle, 'default') ->removeComponent($field_name)->save(); $this->drupalGet($admin_path); $this->assertFieldById($element_id, '', 'The default value widget was displayed when field is hidden.'); } /** - * Tests that deletion removes fields and instances as expected. + * Tests that deletion removes field storages and fields as expected. */ function testDeleteField() { // Create a new field. @@ -352,7 +352,7 @@ function testDeleteField() { $type2 = $this->drupalCreateContentType(array('name' => $type_name2, 'type' => $type_name2)); $type_name2 = $type2->type; - // Add an instance to the second node type. + // Add a field to the second node type. $bundle_path2 = 'admin/structure/types/manage/' . $type_name2; $edit2 = array( 'fields[_add_existing_field][label]' => $this->field_label, @@ -360,19 +360,19 @@ function testDeleteField() { ); $this->fieldUIAddExistingField($bundle_path2, $edit2); - // Delete the first instance. + // Delete the first field. $this->fieldUIDeleteField($bundle_path1, "node.$this->type.$this->field_name", $this->field_label, $this->type); - // Check that the field instance was deleted. - $this->assertNull(FieldInstanceConfig::loadByName('node', $this->type, $this->field_name), 'Field instance was deleted.'); + // Check that the field was deleted. + $this->assertNull(FieldConfig::loadByName('node', $this->type, $this->field_name), 'Field was deleted.'); // Check that the field storage was not deleted $this->assertNotNull(FieldStorageConfig::loadByName('node', $this->field_name), 'Field storage was not deleted.'); - // Delete the second instance. + // Delete the second field. $this->fieldUIDeleteField($bundle_path2, "node.$type_name2.$this->field_name", $this->field_label, $type_name2); - // Check that the field instance was deleted. - $this->assertNull(FieldInstanceConfig::loadByName('node', $type_name2, $this->field_name), 'Field instance was deleted.'); + // Check that the field was deleted. + $this->assertNull(FieldConfig::loadByName('node', $type_name2, $this->field_name), 'Field was deleted.'); // Check that the field storage was deleted too. $this->assertNull(FieldStorageConfig::loadByName('node', $this->field_name), 'Field storage was deleted.'); } @@ -418,7 +418,7 @@ function testLockedField() { 'locked' => TRUE )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $this->type, ))->save(); @@ -450,31 +450,31 @@ function testHiddenFields() { $this->drupalGet($bundle_path); $this->assertFalse($this->xpath('//select[@id="edit-fields-add-new-field-type"]//option[@value="hidden_test_field"]'), "The 'add new field' select respects field types 'no_ui' property."); - // Create a field and an instance programmatically. + // Create a field storage and a field programmatically. $field_name = 'hidden_test_field'; entity_create('field_storage_config', array( 'name' => $field_name, 'entity_type' => 'node', 'type' => $field_name, ))->save(); - $instance = array( + $field = array( 'field_name' => $field_name, 'bundle' => $this->type, 'entity_type' => 'node', 'label' => t('Hidden field'), ); - entity_create('field_instance_config', $instance)->save(); + entity_create('field_config', $field)->save(); entity_get_form_display('node', $this->type, 'default') ->setComponent($field_name) ->save(); - $this->assertTrue(entity_load('field_instance_config', 'node.' . $this->type . '.' . $field_name), format_string('An instance of the field %field was created programmatically.', array('%field' => $field_name))); + $this->assertTrue(entity_load('field_config', 'node.' . $this->type . '.' . $field_name), format_string('A field of the field storage %field was created programmatically.', array('%field' => $field_name))); - // Check that the newly added instance appears on the 'Manage Fields' + // Check that the newly added field appears on the 'Manage Fields' // screen. $this->drupalGet($bundle_path); - $this->assertFieldByXPath('//table[@id="field-overview"]//tr[@id="hidden-test-field"]//td[1]', $instance['label'], 'Field was created and appears in the overview page.'); + $this->assertFieldByXPath('//table[@id="field-overview"]//tr[@id="hidden-test-field"]//td[1]', $field['label'], 'Field was created and appears in the overview page.'); - // Check that the instance does not appear in the 're-use existing field' row + // Check that the field does not appear in the 're-use existing field' row // on other bundles. $bundle_path = 'admin/structure/types/manage/article/fields/'; $this->drupalGet($bundle_path); @@ -524,7 +524,7 @@ function testDuplicateFieldName() { } /** - * Tests that deletion removes fields and instances as expected for a term. + * Tests that deletion removes field storages and fields as expected for a term. */ function testDeleteTaxonomyField() { // Create a new field. @@ -538,8 +538,8 @@ function testDeleteTaxonomyField() { // Delete the field. $this->fieldUIDeleteField($bundle_path, "taxonomy_term.tags.$this->field_name", $this->field_label, 'Tags'); - // Check that the field instance was deleted. - $this->assertNull(FieldInstanceConfig::loadByName('taxonomy_term', 'tags', $this->field_name), 'Field instance was deleted.'); + // Check that the field was deleted. + $this->assertNull(FieldConfig::loadByName('taxonomy_term', 'tags', $this->field_name), 'Field was deleted.'); // Check that the field storage was deleted too. $this->assertNull(FieldStorageConfig::loadByName('taxonomy_term', $this->field_name), 'Field storage was deleted.'); } @@ -555,7 +555,7 @@ function testHelpDescriptions() { 'type' => 'image', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => 'field_image', 'entity_type' => 'node', 'label' => 'Image', @@ -565,12 +565,12 @@ function testHelpDescriptions() { entity_get_form_display('node', 'article', 'default')->setComponent('field_image')->save(); $edit = array( - 'instance[description]' => 'Test with an upload field.', + 'field[description]' => 'Test with an upload field.', ); $this->drupalPostForm('admin/structure/types/manage/article/fields/node.article.field_image', $edit, t('Save settings')); $edit = array( - 'instance[description]' => 'Test with a non upload field.', + 'field[description]' => 'Test with a non upload field.', ); $this->drupalPostForm('admin/structure/types/manage/article/fields/node.article.field_tags', $edit, t('Save settings')); diff --git a/core/modules/file/config/schema/file.schema.yml b/core/modules/file/config/schema/file.schema.yml index 08634dd..79e0e13 100644 --- a/core/modules/file/config/schema/file.schema.yml +++ b/core/modules/file/config/schema/file.schema.yml @@ -43,7 +43,7 @@ field.file.value: - type: string label: 'Value' -base_file_field_instance_settings: +base_file_field_field_settings: type: mapping mapping: handler: @@ -59,8 +59,8 @@ base_file_field_instance_settings: type: string label: 'Maximum upload size' -field.file.instance_settings: - type: base_file_field_instance_settings +field.file.field_settings: + type: base_file_field_field_settings label: 'File settings' mapping: description_field: diff --git a/core/modules/file/src/Plugin/Field/FieldType/FileItem.php b/core/modules/file/src/Plugin/Field/FieldType/FileItem.php index 9f80a6f..98d40e4 100644 --- a/core/modules/file/src/Plugin/Field/FieldType/FileItem.php +++ b/core/modules/file/src/Plugin/Field/FieldType/FileItem.php @@ -42,13 +42,13 @@ public static function defaultSettings() { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array( 'file_extensions' => 'txt', 'file_directory' => '', 'max_filesize' => '', 'description_field' => 0, - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); } /** @@ -149,7 +149,7 @@ public function settingsForm(array &$form, FormStateInterface $form_state, $has_ /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { $element = array(); $settings = $this->getSettings(); diff --git a/core/modules/file/src/Tests/FileFieldDisplayTest.php b/core/modules/file/src/Tests/FileFieldDisplayTest.php index 6a1798d..1b11125 100644 --- a/core/modules/file/src/Tests/FileFieldDisplayTest.php +++ b/core/modules/file/src/Tests/FileFieldDisplayTest.php @@ -22,16 +22,16 @@ class FileFieldDisplayTest extends FileFieldTestBase { function testNodeDisplay() { $field_name = strtolower($this->randomMachineName()); $type_name = 'article'; - $field_settings = array( + $field_storage_settings = array( 'display_field' => '1', 'display_default' => '1', 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, ); - $instance_settings = array( + $field_settings = array( 'description_field' => '1', ); $widget_settings = array(); - $this->createFileField($field_name, 'node', $type_name, $field_settings, $instance_settings, $widget_settings); + $this->createFileField($field_name, 'node', $type_name, $field_storage_settings, $field_settings, $widget_settings); // Create a new node *without* the file field set, and check that the field // is not shown for each node display. diff --git a/core/modules/file/src/Tests/FileFieldRSSContentTest.php b/core/modules/file/src/Tests/FileFieldRSSContentTest.php index db265c2..5da2242 100644 --- a/core/modules/file/src/Tests/FileFieldRSSContentTest.php +++ b/core/modules/file/src/Tests/FileFieldRSSContentTest.php @@ -31,11 +31,11 @@ function testFileFieldRSSContent() { 'display_field' => '1', 'display_default' => '1', ); - $instance_settings = array( + $field_settings = array( 'description_field' => '1', ); $widget_settings = array(); - $this->createFileField($field_name, 'node', $type_name, $field_settings, $instance_settings, $widget_settings); + $this->createFileField($field_name, 'node', $type_name, $field_settings, $field_settings, $widget_settings); // RSS display must be added manually. $this->drupalGet("admin/structure/types/manage/$type_name/display"); diff --git a/core/modules/file/src/Tests/FileFieldTestBase.php b/core/modules/file/src/Tests/FileFieldTestBase.php index fb9552a..388f6d8 100644 --- a/core/modules/file/src/Tests/FileFieldTestBase.php +++ b/core/modules/file/src/Tests/FileFieldTestBase.php @@ -8,7 +8,7 @@ namespace Drupal\file\Tests; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\file\FileInterface; use Drupal\simpletest\WebTestBase; @@ -64,12 +64,12 @@ function getLastFileId() { * The bundle that this field will be added to. * @param $storage_settings * A list of field storage settings that will be added to the defaults. - * @param $instance_settings + * @param $field_settings * A list of instance settings that will be added to the instance defaults. * @param $widget_settings * A list of widget settings that will be added to the widget defaults. */ - function createFileField($name, $entity_type, $bundle, $storage_settings = array(), $instance_settings = array(), $widget_settings = array()) { + function createFileField($name, $entity_type, $bundle, $storage_settings = array(), $field_settings = array(), $widget_settings = array()) { $field_storage = entity_create('field_storage_config', array( 'entity_type' => $entity_type, 'name' => $name, @@ -79,7 +79,7 @@ function createFileField($name, $entity_type, $bundle, $storage_settings = array )); $field_storage->save(); - $this->attachFileField($name, $entity_type, $bundle, $instance_settings, $widget_settings); + $this->attachFileField($name, $entity_type, $bundle, $field_settings, $widget_settings); return $field_storage; } @@ -94,22 +94,19 @@ function createFileField($name, $entity_type, $bundle, $storage_settings = array * The bundle this field will be added to. * @param $field_settings * A list of field settings that will be added to the defaults. - * @param $instance_settings - * A list of instance settings that will be added to the instance defaults. * @param $widget_settings * A list of widget settings that will be added to the widget defaults. */ - function attachFileField($name, $entity_type, $bundle, $instance_settings = array(), $widget_settings = array()) { - $instance = array( + function attachFileField($name, $entity_type, $bundle, $field_settings = array(), $widget_settings = array()) { + $field = array( 'field_name' => $name, 'label' => $name, 'entity_type' => $entity_type, 'bundle' => $bundle, - 'required' => !empty($instance_settings['required']), - 'settings' => array(), + 'required' => !empty($field_settings['required']), + 'settings' => $field_settings, ); - $instance['settings'] = array_merge($instance['settings'], $instance_settings); - entity_create('field_instance_config', $instance)->save(); + entity_create('field_config', $field)->save(); entity_get_form_display($entity_type, $bundle, 'default') ->setComponent($name, array( @@ -122,10 +119,10 @@ function attachFileField($name, $entity_type, $bundle, $instance_settings = arra /** * Updates an existing file field with new settings. */ - function updateFileField($name, $type_name, $instance_settings = array(), $widget_settings = array()) { - $instance = FieldInstanceConfig::loadByName('node', $type_name, $name); - $instance->settings = array_merge($instance->settings, $instance_settings); - $instance->save(); + function updateFileField($name, $type_name, $field_settings = array(), $widget_settings = array()) { + $field = FieldConfig::loadByName('node', $type_name, $name); + $field->settings = array_merge($field->settings, $field_settings); + $field->save(); entity_get_form_display('node', $type_name, 'default') ->setComponent($name, array( diff --git a/core/modules/file/src/Tests/FileFieldValidateTest.php b/core/modules/file/src/Tests/FileFieldValidateTest.php index 182ffad..bc910e0 100644 --- a/core/modules/file/src/Tests/FileFieldValidateTest.php +++ b/core/modules/file/src/Tests/FileFieldValidateTest.php @@ -8,7 +8,7 @@ namespace Drupal\file\Tests; use Drupal\Core\Field\FieldStorageDefinitionInterface; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Tests validation functions such as file type, max file size, max size per @@ -26,8 +26,8 @@ class FileFieldValidateTest extends FileFieldTestBase { function testRequired() { $type_name = 'article'; $field_name = strtolower($this->randomMachineName()); - $field = $this->createFileField($field_name, 'node', $type_name, array(), array('required' => '1')); - $instance = FieldInstanceConfig::loadByName('node', $type_name, $field_name); + $storage = $this->createFileField($field_name, 'node', $type_name, array(), array('required' => '1')); + $field = FieldConfig::loadByName('node', $type_name, $field_name); $test_file = $this->getTestFile('text'); @@ -35,7 +35,7 @@ function testRequired() { $edit = array(); $edit['title[0][value]'] = $this->randomMachineName(); $this->drupalPostForm('node/add/' . $type_name, $edit, t('Save and publish')); - $this->assertRaw(t('!title field is required.', array('!title' => $instance->getLabel())), 'Node save failed when required file field was empty.'); + $this->assertRaw(t('!title field is required.', array('!title' => $field->getLabel())), 'Node save failed when required file field was empty.'); // Create a new node with the uploaded file. $nid = $this->uploadNodeFile($test_file, $field_name, $type_name); @@ -48,14 +48,14 @@ function testRequired() { $this->assertFileEntryExists($node_file, 'File entry exists after uploading to the required field.'); // Try again with a multiple value field. - $field->delete(); + $storage->delete(); $this->createFileField($field_name, 'node', $type_name, array('cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED), array('required' => '1')); // Try to post a new node without uploading a file in the multivalue field. $edit = array(); $edit['title[0][value]'] = $this->randomMachineName(); $this->drupalPostForm('node/add/' . $type_name, $edit, t('Save and publish')); - $this->assertRaw(t('!title field is required.', array('!title' => $instance->getLabel())), 'Node save failed when required multiple value file field was empty.'); + $this->assertRaw(t('!title field is required.', array('!title' => $field->getLabel())), 'Node save failed when required multiple value file field was empty.'); // Create a new node with the uploaded file into the multivalue field. $nid = $this->uploadNodeFile($test_file, $field_name, $type_name); diff --git a/core/modules/file/src/Tests/FileFieldWidgetTest.php b/core/modules/file/src/Tests/FileFieldWidgetTest.php index 9ae0940..7b1aa28 100644 --- a/core/modules/file/src/Tests/FileFieldWidgetTest.php +++ b/core/modules/file/src/Tests/FileFieldWidgetTest.php @@ -8,7 +8,7 @@ namespace Drupal\file\Tests; use Drupal\comment\Entity\Comment; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Tests the file field widget, single and multi-valued, with and without AJAX, @@ -206,13 +206,13 @@ function testPrivateFileSetting() { $type_name = 'article'; $field_name = strtolower($this->randomMachineName()); $this->createFileField($field_name, 'node', $type_name); - $instance = FieldInstanceConfig::loadByName('node', $type_name, $field_name); + $field = FieldConfig::loadByName('node', $type_name, $field_name); $test_file = $this->getTestFile('text'); // Change the field setting to make its files private, and upload a file. $edit = array('field[settings][uri_scheme]' => 'private'); - $this->drupalPostForm("admin/structure/types/manage/$type_name/fields/$instance->id/storage", $edit, t('Save field settings')); + $this->drupalPostForm("admin/structure/types/manage/$type_name/fields/$field->id/storage", $edit, t('Save field settings')); $nid = $this->uploadNodeFile($test_file, $field_name, $type_name); $node = node_load($nid, TRUE); $node_file = file_load($node->{$field_name}->target_id); @@ -224,12 +224,12 @@ function testPrivateFileSetting() { // Ensure we can't change 'uri_scheme' field settings while there are some // entities with uploaded files. - $this->drupalGet("admin/structure/types/manage/$type_name/fields/$instance->id/storage"); + $this->drupalGet("admin/structure/types/manage/$type_name/fields/$field->id/storage"); $this->assertFieldByXpath('//input[@id="edit-field-settings-uri-scheme-public" and @disabled="disabled"]', 'public', 'Upload destination setting disabled.'); // Delete node and confirm that setting could be changed. $node->delete(); - $this->drupalGet("admin/structure/types/manage/$type_name/fields/$instance->id/storage"); + $this->drupalGet("admin/structure/types/manage/$type_name/fields/$field->id/storage"); $this->assertFieldByXpath('//input[@id="edit-field-settings-uri-scheme-public" and not(@disabled)]', 'public', 'Upload destination setting enabled.'); } diff --git a/core/modules/file/src/Tests/FileItemTest.php b/core/modules/file/src/Tests/FileItemTest.php index 82a2ceb..ba79ea1 100644 --- a/core/modules/file/src/Tests/FileItemTest.php +++ b/core/modules/file/src/Tests/FileItemTest.php @@ -45,7 +45,7 @@ protected function setUp() { 'type' => 'file', 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'file_test', 'bundle' => 'entity_test', diff --git a/core/modules/forum/config/install/field.instance.taxonomy_term.forums.forum_container.yml b/core/modules/forum/config/install/field.field.taxonomy_term.forums.forum_container.yml similarity index 100% rename from core/modules/forum/config/install/field.instance.taxonomy_term.forums.forum_container.yml rename to core/modules/forum/config/install/field.field.taxonomy_term.forums.forum_container.yml diff --git a/core/modules/forum/forum.install b/core/modules/forum/forum.install index 2ebc79f..6af734c 100644 --- a/core/modules/forum/forum.install +++ b/core/modules/forum/forum.install @@ -6,7 +6,7 @@ */ use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; use Drupal\comment\CommentManagerInterface; @@ -51,7 +51,7 @@ function forum_install() { $term->save(); // Create the instance on the bundle. - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => 'taxonomy_forums', 'entity_type' => 'node', 'label' => 'Forums', @@ -91,9 +91,9 @@ function forum_install() { Drupal::service('comment.manager')->addDefaultField('node', 'forum', 'comment_forum', CommentItemInterface::OPEN, 'comment_forum'); // Add here because we don't have param in addDefaultField function. - $instance = FieldInstanceConfig::loadByName('node', 'forum', 'comment_forum'); - $instance->settings['default_mode'] = CommentManagerInterface::COMMENT_MODE_FLAT; - $instance->save(); + $field = FieldConfig::loadByName('node', 'forum', 'comment_forum'); + $field->settings['default_mode'] = CommentManagerInterface::COMMENT_MODE_FLAT; + $field->save(); // Hide label for comment field. entity_get_display('node', 'forum', 'default') diff --git a/core/modules/hal/src/Tests/NormalizerTestBase.php b/core/modules/hal/src/Tests/NormalizerTestBase.php index 4ef6037..48c2f02 100644 --- a/core/modules/hal/src/Tests/NormalizerTestBase.php +++ b/core/modules/hal/src/Tests/NormalizerTestBase.php @@ -86,7 +86,7 @@ protected function setUp() { 'entity_type' => 'entity_test', 'type' => 'text', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'field_test_text', 'bundle' => 'entity_test', @@ -99,7 +99,7 @@ protected function setUp() { 'entity_type' => 'entity_test', 'type' => 'text', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'field_test_translatable_text', 'bundle' => 'entity_test', @@ -115,7 +115,7 @@ protected function setUp() { 'target_type' => 'entity_test', ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'field_test_entity_reference', 'bundle' => 'entity_test', diff --git a/core/modules/image/config/schema/image.schema.yml b/core/modules/image/config/schema/image.schema.yml index 4f1fc79..dc2db0b 100644 --- a/core/modules/image/config/schema/image.schema.yml +++ b/core/modules/image/config/schema/image.schema.yml @@ -80,8 +80,8 @@ field.image.settings: type: field_default_image label: 'Default value' -field.image.instance_settings: - type: base_file_field_instance_settings +field.image.field_settings: + type: base_file_field_field_settings label: 'Image settings' mapping: max_resolution: diff --git a/core/modules/image/image.module b/core/modules/image/image.module index a6ce171..4003c04 100644 --- a/core/modules/image/image.module +++ b/core/modules/image/image.module @@ -9,7 +9,7 @@ use Drupal\Core\Routing\RouteMatchInterface; use Drupal\file\Entity\File; use Drupal\field\FieldStorageConfigInterface; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; /** * Image style constant for user presets in the database. @@ -344,9 +344,9 @@ function image_filter_keyword($value, $current_pixels, $new_pixels) { function image_entity_presave(EntityInterface $entity) { $field_storage = FALSE; $entity_type_id = $entity->getEntityTypeId(); - if ($entity_type_id == 'field_instance_config') { + if ($entity_type_id == 'field_config') { $field_storage = $entity->getFieldStorageDefinition(); - $default_settings = \Drupal::service('plugin.manager.field.field_type')->getDefaultInstanceSettings('image'); + $default_settings = \Drupal::service('plugin.manager.field.field_type')->getDefaultFieldSettings('image'); } elseif ($entity_type_id == 'field_storage_config') { $field_storage = $entity; @@ -421,9 +421,9 @@ function image_field_storage_config_update(FieldStorageConfigInterface $field_st } /** - * Implements hook_ENTITY_TYPE_update() for 'field_instance_config'. + * Implements hook_ENTITY_TYPE_update() for 'field_config'. */ -function image_field_instance_config_update(FieldInstanceConfigInterface $field_instance) { +function image_field_config_update(FieldConfigInterface $field_instance) { $field_storage = $field_instance->getFieldStorageDefinition(); if ($field_storage->type != 'image') { // Only act on image fields. @@ -475,9 +475,9 @@ function image_field_storage_config_delete(FieldStorageConfigInterface $field) { } /** - * Implements hook_ENTITY_TYPE_delete() for 'field_instance_config'. + * Implements hook_ENTITY_TYPE_delete() for 'field_config'. */ -function image_field_instance_config_delete(FieldInstanceConfigInterface $field_instance) { +function image_field_config_delete(FieldConfigInterface $field_instance) { $field_storage = $field_instance->getFieldStorageDefinition(); if ($field_storage->type != 'image') { // Only act on image fields. diff --git a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php index e99d8eb..62bef76 100644 --- a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php +++ b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php @@ -7,7 +7,7 @@ namespace Drupal\image\Plugin\Field\FieldFormatter; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; use Drupal\file\Plugin\Field\FieldFormatter\FileFormatterBase; /** @@ -28,7 +28,7 @@ public function prepareView(array $entities_items) { $default_image = $this->getFieldSetting('default_image'); // If we are dealing with a configurable field, look in both // instance-level and field-level settings. - if (empty($default_image['fid']) && $this->fieldDefinition instanceof FieldInstanceConfigInterface) { + if (empty($default_image['fid']) && $this->fieldDefinition instanceof FieldConfigInterface) { $default_image = $this->fieldDefinition->getFieldStorageDefinition()->getSetting('default_image'); } diff --git a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php index 0cbb89a..17fb55a 100644 --- a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php +++ b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php @@ -60,7 +60,7 @@ public static function defaultSettings() { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { $settings = array( 'file_extensions' => 'png gif jpg jpeg', 'alt_field' => 0, @@ -76,7 +76,7 @@ public static function defaultInstanceSettings() { 'width' => NULL, 'height' => NULL, ), - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); unset($settings['description_field']); return $settings; @@ -183,9 +183,9 @@ public function settingsForm(array &$form, FormStateInterface $form_state, $has_ /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { // Get base form from FileItem::instanceSettingsForm(). - $element = parent::instanceSettingsForm($form, $form_state); + $element = parent::fieldSettingsForm($form, $form_state); $settings = $this->getSettings(); diff --git a/core/modules/image/src/Tests/ImageFieldDefaultImagesTest.php b/core/modules/image/src/Tests/ImageFieldDefaultImagesTest.php index 38fc142..3d1f560 100644 --- a/core/modules/image/src/Tests/ImageFieldDefaultImagesTest.php +++ b/core/modules/image/src/Tests/ImageFieldDefaultImagesTest.php @@ -8,7 +8,7 @@ namespace Drupal\image\Tests; /** - * Tests setting up default images both to the field and field instance. + * Tests setting up default images both to the field and field field. * * @group image */ @@ -22,7 +22,7 @@ class ImageFieldDefaultImagesTest extends ImageFieldTestBase { public static $modules = array('field_ui'); /** - * Tests CRUD for fields and fields instances with default images. + * Tests CRUD for fields and fields fields with default images. */ public function testDefaultImages() { // Create files to use as the default images. @@ -36,13 +36,13 @@ public function testDefaultImages() { $file->save(); } $default_images = array(); - foreach (array('field', 'instance', 'instance2', 'field_new', 'instance_new') as $image_target) { + foreach (array('field', 'field', 'field2', 'field_new', 'field_new') as $image_target) { $file = entity_create('file', (array) array_pop($files)); $file->save(); $default_images[$image_target] = $file; } - // Create an image field and add an instance to the article content type. + // Create an image field and add an field to the article content type. $field_name = strtolower($this->randomMachineName()); $storage_settings['default_image'] = array( 'fid' => $default_images['field']->id(), @@ -51,8 +51,8 @@ public function testDefaultImages() { 'width' => 0, 'height' => 0, ); - $instance_settings['default_image'] = array( - 'fid' => $default_images['instance']->id(), + $field_settings['default_image'] = array( + 'fid' => $default_images['field']->id(), 'alt' => '', 'title' => '', 'width' => 0, @@ -61,15 +61,15 @@ public function testDefaultImages() { $widget_settings = array( 'preview_image_style' => 'medium', ); - $instance = $this->createImageField($field_name, 'article', $storage_settings, $instance_settings, $widget_settings); + $field = $this->createImageField($field_name, 'article', $storage_settings, $field_settings, $widget_settings); - // The instance default image id should be 2. - $this->assertEqual($instance->getSetting('default_image')['fid'], $default_images['instance']->id()); + // The field default image id should be 2. + $this->assertEqual($field->getSetting('default_image')['fid'], $default_images['field']->id()); - // Also test \Drupal\field\Entity\FieldInstanceConfig::getSetting(). - $this->assertEqual($instance->getSettings()['default_image']['fid'], $default_images['instance']->id()); + // Also test \Drupal\field\Entity\FieldConfig::getSetting(). + $this->assertEqual($field->getSettings()['default_image']['fid'], $default_images['field']->id()); - $field_storage = $instance->getFieldStorageDefinition(); + $field_storage = $field->getFieldStorageDefinition(); // The field default image id should be 1. $this->assertEqual($field_storage->getSetting('default_image')['fid'], $default_images['field']->id()); @@ -77,15 +77,15 @@ public function testDefaultImages() { // Also test \Drupal\field\Entity\FieldStorageConfig::getSettings(). $this->assertEqual($field_storage->getSettings()['default_image']['fid'], $default_images['field']->id()); - // Add another instance with another default image to the page content type. - $instance2 = entity_create('field_instance_config', array( + // Add another field with another default image to the page content type. + $field2 = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'page', - 'label' => $instance->label(), - 'required' => $instance->required, + 'label' => $field->label(), + 'required' => $field->required, 'settings' => array( 'default_image' => array( - 'fid' => $default_images['instance2']->id(), + 'fid' => $default_images['field2']->id(), 'alt' => '', 'title' => '', 'width' => 0, @@ -93,9 +93,9 @@ public function testDefaultImages() { ), ), )); - $instance2->save(); + $field2->save(); - $widget_settings = entity_get_form_display('node', $instance->bundle, 'default')->getComponent($field_name); + $widget_settings = entity_get_form_display('node', $field->bundle, 'default')->getComponent($field_name); entity_get_form_display('node', 'page', 'default') ->setComponent($field_name, $widget_settings) ->save(); @@ -104,8 +104,8 @@ public function testDefaultImages() { ->save(); // Confirm the defaults are present on the article field settings form. - $instance_id = $instance->id(); - $this->drupalGet("admin/structure/types/manage/article/fields/$instance_id/storage"); + $field_id = $field->id(); + $this->drupalGet("admin/structure/types/manage/article/fields/$field_id/storage"); $this->assertFieldByXpath( '//input[@name="field[settings][default_image][fid][fids]"]', $default_images['field']->id(), @@ -115,18 +115,18 @@ public function testDefaultImages() { ) ); // Confirm the defaults are present on the article field edit form. - $this->drupalGet("admin/structure/types/manage/article/fields/$instance_id"); + $this->drupalGet("admin/structure/types/manage/article/fields/$field_id"); $this->assertFieldByXpath( - '//input[@name="instance[settings][default_image][fid][fids]"]', - $default_images['instance']->id(), + '//input[@name="field[settings][default_image][fid][fids]"]', + $default_images['field']->id(), format_string( - 'Article image field instance default equals expected file ID of @fid.', - array('@fid' => $default_images['instance']->id()) + 'Article image field field default equals expected file ID of @fid.', + array('@fid' => $default_images['field']->id()) ) ); // Confirm the defaults are present on the page field settings form. - $this->drupalGet("admin/structure/types/manage/page/fields/$instance_id/storage"); + $this->drupalGet("admin/structure/types/manage/page/fields/$field_id/storage"); $this->assertFieldByXpath( '//input[@name="field[settings][default_image][fid][fids]"]', $default_images['field']->id(), @@ -136,14 +136,14 @@ public function testDefaultImages() { ) ); // Confirm the defaults are present on the page field edit form. - $instance2_id = $instance2->id(); - $this->drupalGet("admin/structure/types/manage/page/fields/$instance2_id"); + $field2_id = $field2->id(); + $this->drupalGet("admin/structure/types/manage/page/fields/$field2_id"); $this->assertFieldByXpath( - '//input[@name="instance[settings][default_image][fid][fids]"]', - $default_images['instance2']->id(), + '//input[@name="field[settings][default_image][fid][fids]"]', + $default_images['field2']->id(), format_string( - 'Page image field instance default equals expected file ID of @fid.', - array('@fid' => $default_images['instance2']->id()) + 'Page image field field default equals expected file ID of @fid.', + array('@fid' => $default_images['field2']->id()) ) ); @@ -152,10 +152,10 @@ public function testDefaultImages() { $article_built = $this->drupalBuildEntityView($article); $this->assertEqual( $article_built[$field_name]['#items'][0]->target_id, - $default_images['instance']->id(), + $default_images['field']->id(), format_string( 'A new article node without an image has the expected default image file ID of @fid.', - array('@fid' => $default_images['instance']->id()) + array('@fid' => $default_images['field']->id()) ) ); @@ -164,10 +164,10 @@ public function testDefaultImages() { $page_built = $this->drupalBuildEntityView($page); $this->assertEqual( $page_built[$field_name]['#items'][0]->target_id, - $default_images['instance2']->id(), + $default_images['field2']->id(), format_string( 'A new page node without an image has the expected default image file ID of @fid.', - array('@fid' => $default_images['instance2']->id()) + array('@fid' => $default_images['field2']->id()) ) ); @@ -176,7 +176,7 @@ public function testDefaultImages() { $field_storage->save(); // Confirm that the new default is used on the article field settings form. - $this->drupalGet("admin/structure/types/manage/article/fields/$instance_id/storage"); + $this->drupalGet("admin/structure/types/manage/article/fields/$field_id/storage"); $this->assertFieldByXpath( '//input[@name="field[settings][default_image][fid][fids]"]', $default_images['field_new']->id(), @@ -186,39 +186,39 @@ public function testDefaultImages() { ) ); - // Reload the nodes and confirm the field instance defaults are used. + // Reload the nodes and confirm the field field defaults are used. $article_built = $this->drupalBuildEntityView($article = node_load($article->id(), TRUE)); $page_built = $this->drupalBuildEntityView($page = node_load($page->id(), TRUE)); $this->assertEqual( $article_built[$field_name]['#items'][0]->target_id, - $default_images['instance']->id(), + $default_images['field']->id(), format_string( 'An existing article node without an image has the expected default image file ID of @fid.', - array('@fid' => $default_images['instance']->id()) + array('@fid' => $default_images['field']->id()) ) ); $this->assertEqual( $page_built[$field_name]['#items'][0]->target_id, - $default_images['instance2']->id(), + $default_images['field2']->id(), format_string( 'An existing page node without an image has the expected default image file ID of @fid.', - array('@fid' => $default_images['instance2']->id()) + array('@fid' => $default_images['field2']->id()) ) ); - // Upload a new default for the article's field instance. - $instance->settings['default_image']['fid'] = $default_images['instance_new']->id(); - $instance->save(); + // Upload a new default for the article's field field. + $field->settings['default_image']['fid'] = $default_images['field_new']->id(); + $field->save(); - // Confirm the new field instance default is used on the article field + // Confirm the new field field default is used on the article field // admin form. - $this->drupalGet("admin/structure/types/manage/article/fields/$instance_id"); + $this->drupalGet("admin/structure/types/manage/article/fields/$field_id"); $this->assertFieldByXpath( - '//input[@name="instance[settings][default_image][fid][fids]"]', - $default_images['instance_new']->id(), + '//input[@name="field[settings][default_image][fid][fids]"]', + $default_images['field_new']->id(), format_string( - 'Updated article image field instance default equals expected file ID of @fid.', - array('@fid' => $default_images['instance_new']->id()) + 'Updated article image field field default equals expected file ID of @fid.', + array('@fid' => $default_images['field_new']->id()) ) ); @@ -229,38 +229,38 @@ public function testDefaultImages() { // Confirm the article uses the new default. $this->assertEqual( $article_built[$field_name]['#items'][0]->target_id, - $default_images['instance_new']->id(), + $default_images['field_new']->id(), format_string( 'An existing article node without an image has the expected default image file ID of @fid.', - array('@fid' => $default_images['instance_new']->id()) + array('@fid' => $default_images['field_new']->id()) ) ); // Confirm the page remains unchanged. $this->assertEqual( $page_built[$field_name]['#items'][0]->target_id, - $default_images['instance2']->id(), + $default_images['field2']->id(), format_string( 'An existing page node without an image has the expected default image file ID of @fid.', - array('@fid' => $default_images['instance2']->id()) + array('@fid' => $default_images['field2']->id()) ) ); - // Remove the instance default from articles. - $instance->settings['default_image']['fid'] = 0; - $instance->save(); + // Remove the field default from articles. + $field->settings['default_image']['fid'] = 0; + $field->save(); - // Confirm the article field instance default has been removed. - $this->drupalGet("admin/structure/types/manage/article/fields/$instance_id"); + // Confirm the article field field default has been removed. + $this->drupalGet("admin/structure/types/manage/article/fields/$field_id"); $this->assertFieldByXpath( - '//input[@name="instance[settings][default_image][fid][fids]"]', + '//input[@name="field[settings][default_image][fid][fids]"]', '', - 'Updated article image field instance default has been successfully removed.' + 'Updated article image field field default has been successfully removed.' ); // Reload the nodes. $article_built = $this->drupalBuildEntityView($article = node_load($article->id(), TRUE)); $page_built = $this->drupalBuildEntityView($page = node_load($page->id(), TRUE)); - // Confirm the article uses the new field (not instance) default. + // Confirm the article uses the new field (not field) default. $this->assertEqual( $article_built[$field_name]['#items'][0]->target_id, $default_images['field_new']->id(), @@ -272,20 +272,20 @@ public function testDefaultImages() { // Confirm the page remains unchanged. $this->assertEqual( $page_built[$field_name]['#items'][0]->target_id, - $default_images['instance2']->id(), + $default_images['field2']->id(), format_string( 'An existing page node without an image has the expected default image file ID of @fid.', - array('@fid' => $default_images['instance2']->id()) + array('@fid' => $default_images['field2']->id()) ) ); $non_image = $this->drupalGetTestFiles('text'); - $this->drupalPostForm(NULL, array('files[instance_settings_default_image_fid]' => drupal_realpath($non_image[0]->uri)), t("Upload")); + $this->drupalPostForm(NULL, array('files[field_settings_default_image_fid]' => drupal_realpath($non_image[0]->uri)), t("Upload")); $this->assertText(t('The specified file text-0.txt could not be uploaded. Only files with the following extensions are allowed: png gif jpg jpeg.'), 'Non-image file cannot be used as default image.'); } /** - * Tests image field and instance having an invalid default image. + * Tests image field and field having an invalid default image. */ public function testInvalidDefaultImage() { $field_storage = entity_create('field_storage_config', array( @@ -303,7 +303,7 @@ public function testInvalidDefaultImage() { // The non-existent default image should not be saved. $this->assertNull($settings['default_image']['fid']); - $field_instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'page', 'label' => $this->randomMachineName(), @@ -313,8 +313,8 @@ public function testInvalidDefaultImage() { ) ), )); - $field_instance->save(); - $settings = $field_instance->getSettings(); + $field->save(); + $settings = $field->getSettings(); // The non-existent default image should not be saved. $this->assertNull($settings['default_image']['fid']); } diff --git a/core/modules/image/src/Tests/ImageFieldDisplayTest.php b/core/modules/image/src/Tests/ImageFieldDisplayTest.php index 24330bf..4c632c1 100644 --- a/core/modules/image/src/Tests/ImageFieldDisplayTest.php +++ b/core/modules/image/src/Tests/ImageFieldDisplayTest.php @@ -168,7 +168,7 @@ function testImageFieldSettings() { $test_image = current($this->drupalGetTestFiles('image')); list(, $test_image_extension) = explode('.', $test_image->filename); $field_name = strtolower($this->randomMachineName()); - $instance_settings = array( + $field_settings = array( 'alt_field' => 1, 'file_extensions' => $test_image_extension, 'max_filesize' => '50 KB', @@ -180,7 +180,7 @@ function testImageFieldSettings() { $widget_settings = array( 'preview_image_style' => 'medium', ); - $instance = $this->createImageField($field_name, 'article', array(), $instance_settings, $widget_settings); + $field = $this->createImageField($field_name, 'article', array(), $field_settings, $widget_settings); $this->drupalGet('node/add/article'); $this->assertText(t('50 KB limit.'), 'Image widget max file size is displayed on article form.'); @@ -230,7 +230,7 @@ function testImageFieldSettings() { $field_name . '[0][title]' => $this->randomMachineName($test_size), ); $this->drupalPostForm('node/' . $nid . '/edit', $edit, t('Save and keep published')); - $schema = $instance->getFieldStorageDefinition()->getSchema(); + $schema = $field->getFieldStorageDefinition()->getSchema(); $this->assertRaw(t('Alternate text cannot be longer than %max characters but is currently %length characters long.', array( '%max' => $schema['columns']['alt']['length'], '%length' => $test_size, diff --git a/core/modules/image/src/Tests/ImageFieldTestBase.php b/core/modules/image/src/Tests/ImageFieldTestBase.php index 561737a..280876e 100644 --- a/core/modules/image/src/Tests/ImageFieldTestBase.php +++ b/core/modules/image/src/Tests/ImageFieldTestBase.php @@ -58,12 +58,12 @@ protected function setUp() { * The node type that this field will be added to. * @param $storage_settings * A list of field storage settings that will be added to the defaults. - * @param $instance_settings + * @param $field_settings * A list of instance settings that will be added to the instance defaults. * @param $widget_settings * A list of widget settings that will be added to the widget defaults. */ - function createImageField($name, $type_name, $storage_settings = array(), $instance_settings = array(), $widget_settings = array()) { + function createImageField($name, $type_name, $storage_settings = array(), $field_settings = array(), $widget_settings = array()) { entity_create('field_storage_config', array( 'name' => $name, 'entity_type' => 'node', @@ -72,16 +72,16 @@ function createImageField($name, $type_name, $storage_settings = array(), $insta 'cardinality' => !empty($storage_settings['cardinality']) ? $storage_settings['cardinality'] : 1, ))->save(); - $field_instance_config = entity_create('field_instance_config', array( + $field_config = entity_create('field_config', array( 'field_name' => $name, 'label' => $name, 'entity_type' => 'node', 'bundle' => $type_name, - 'required' => !empty($instance_settings['required']), - 'description' => !empty($instance_settings['description']) ? $instance_settings['description'] : '', - 'settings' => $instance_settings, + 'required' => !empty($field_settings['required']), + 'description' => !empty($field_settings['description']) ? $field_settings['description'] : '', + 'settings' => $field_settings, )); - $field_instance_config->save(); + $field_config->save(); entity_get_form_display('node', $type_name, 'default') ->setComponent($name, array( @@ -94,7 +94,7 @@ function createImageField($name, $type_name, $storage_settings = array(), $insta ->setComponent($name) ->save(); - return $field_instance_config; + return $field_config; } diff --git a/core/modules/image/src/Tests/ImageFieldValidateTest.php b/core/modules/image/src/Tests/ImageFieldValidateTest.php index fb7e9a4..415bc93 100644 --- a/core/modules/image/src/Tests/ImageFieldValidateTest.php +++ b/core/modules/image/src/Tests/ImageFieldValidateTest.php @@ -20,11 +20,11 @@ function testResolution() { $field_name = strtolower($this->randomMachineName()); $min_resolution = 50; $max_resolution = 100; - $instance_settings = array( + $field_settings = array( 'max_resolution' => $max_resolution . 'x' . $max_resolution, 'min_resolution' => $min_resolution . 'x' . $min_resolution, ); - $this->createImageField($field_name, 'article', array(), $instance_settings); + $this->createImageField($field_name, 'article', array(), $field_settings); // We want a test image that is too small, and a test image that is too // big, so cycle through test image files until we have what we need. @@ -54,13 +54,13 @@ function testResolution() { */ function testRequiredAttributes() { $field_name = strtolower($this->randomMachineName()); - $instance_settings = array( + $field_settings = array( 'alt_field' => 1, 'alt_field_required' => 1, 'title_field' => 1, 'title_field_required' => 1, ); - $this->createImageField($field_name, 'article', array(), $instance_settings); + $this->createImageField($field_name, 'article', array(), $field_settings); $images = $this->drupalGetTestFiles('image'); // Let's just use the first image. $image = $images[0]; diff --git a/core/modules/image/src/Tests/ImageItemTest.php b/core/modules/image/src/Tests/ImageItemTest.php index d758615..f71f68b 100644 --- a/core/modules/image/src/Tests/ImageItemTest.php +++ b/core/modules/image/src/Tests/ImageItemTest.php @@ -50,7 +50,7 @@ protected function setUp() { 'type' => 'image', 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'image_test', 'bundle' => 'entity_test', diff --git a/core/modules/image/src/Tests/ImageThemeFunctionTest.php b/core/modules/image/src/Tests/ImageThemeFunctionTest.php index 97c5a2b..15d9be0 100644 --- a/core/modules/image/src/Tests/ImageThemeFunctionTest.php +++ b/core/modules/image/src/Tests/ImageThemeFunctionTest.php @@ -45,7 +45,7 @@ protected function setUp() { 'type' => 'image', 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'image_test', 'bundle' => 'entity_test', diff --git a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php index f8639bb..582851f 100644 --- a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php +++ b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php @@ -31,11 +31,11 @@ class LinkItem extends FieldItemBase implements LinkItemInterface { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array( 'title' => DRUPAL_OPTIONAL, 'link_type' => LinkItemInterface::LINK_GENERIC - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); } /** @@ -105,7 +105,7 @@ public static function schema(FieldStorageDefinitionInterface $field_definition) /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { $element = array(); $element['link_type'] = array( diff --git a/core/modules/link/src/Tests/LinkFieldTest.php b/core/modules/link/src/Tests/LinkFieldTest.php index c7eb596..f2f3717 100644 --- a/core/modules/link/src/Tests/LinkFieldTest.php +++ b/core/modules/link/src/Tests/LinkFieldTest.php @@ -35,9 +35,9 @@ class LinkFieldTest extends WebTestBase { /** * The instance used in this test class. * - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; /** * A user with permission to view and manage test entities. @@ -69,7 +69,7 @@ function testURLValidation() { 'type' => 'link', )); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', 'settings' => array( @@ -77,7 +77,7 @@ function testURLValidation() { 'link_type' => LinkItemInterface::LINK_GENERIC, ), )); - $this->instance->save(); + $this->field->save(); entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($field_name, array( 'type' => 'link_default', @@ -126,14 +126,14 @@ function testURLValidation() { $this->assertInvalidEntries($field_name, $invalid_external_entries + $invalid_internal_entries); // Test external URLs for 'link_type' = LinkItemInterface::LINK_EXTERNAL. - $this->instance->settings['link_type'] = LinkItemInterface::LINK_EXTERNAL; - $this->instance->save(); + $this->field->settings['link_type'] = LinkItemInterface::LINK_EXTERNAL; + $this->field->save(); $this->assertValidEntries($field_name, $valid_external_entries); $this->assertInvalidEntries($field_name, $valid_internal_entries + $invalid_external_entries); // Test external URLs for 'link_type' = LinkItemInterface::LINK_INTERNAL. - $this->instance->settings['link_type'] = LinkItemInterface::LINK_INTERNAL; - $this->instance->save(); + $this->field->settings['link_type'] = LinkItemInterface::LINK_INTERNAL; + $this->field->save(); $this->assertValidEntries($field_name, $valid_internal_entries); $this->assertInvalidEntries($field_name, $valid_external_entries + $invalid_internal_entries); } @@ -193,7 +193,7 @@ function testLinkTitle() { 'type' => 'link', )); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', 'label' => 'Read more about this entity', @@ -202,7 +202,7 @@ function testLinkTitle() { 'link_type' => LinkItemInterface::LINK_GENERIC, ), )); - $this->instance->save(); + $this->field->save(); entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($field_name, array( 'type' => 'link_default', @@ -222,8 +222,8 @@ function testLinkTitle() { // Verify that the link text field works according to the field setting. foreach (array(DRUPAL_DISABLED, DRUPAL_REQUIRED, DRUPAL_OPTIONAL) as $title_setting) { // Update the link title field setting. - $this->instance->settings['title'] = $title_setting; - $this->instance->save(); + $this->field->settings['title'] = $title_setting; + $this->field->save(); // Display creation form. $this->drupalGet('entity_test/add'); @@ -312,7 +312,7 @@ function testLinkFormatter() { 'cardinality' => 2, )); $this->fieldStorage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'label' => 'Read more about this entity', 'bundle' => 'entity_test', @@ -454,7 +454,7 @@ function testLinkSeparateFormatter() { 'cardinality' => 2, )); $this->fieldStorage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', 'settings' => array( diff --git a/core/modules/link/src/Tests/LinkItemTest.php b/core/modules/link/src/Tests/LinkItemTest.php index d2e15d5..6022733 100644 --- a/core/modules/link/src/Tests/LinkItemTest.php +++ b/core/modules/link/src/Tests/LinkItemTest.php @@ -35,7 +35,7 @@ protected function setUp() { 'entity_type' => 'entity_test', 'type' => 'link', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'field_test', 'bundle' => 'entity_test', diff --git a/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldInstance.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldInstance.php index c02fef5..77297e8 100644 --- a/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldInstance.php +++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldInstance.php @@ -11,7 +11,7 @@ /** * @MigrateDestination( - * id = "entity:field_instance_config" + * id = "entity:field_config" * ) */ class EntityFieldInstance extends EntityConfigBase { diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_field_instance.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_field_instance.yml index c24eaba..6ec06f7 100644 --- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_field_instance.yml +++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_field_instance.yml @@ -27,7 +27,7 @@ process: 'settings/form_location': comment_form_location 'settings/preview': comment_preview destination: - plugin: entity:field_instance_config + plugin: entity:field_config migration_dependencies: required: - d6_comment_field diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_instance.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_instance.yml index ce20ff5..1ef6a30 100644 --- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_instance.yml +++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_instance.yml @@ -30,7 +30,7 @@ process: required: required status: active settings: - plugin: d6_field_instance_settings + plugin: d6_field_field_settings source: - widget_type - widget_settings @@ -44,7 +44,7 @@ process: - widget_settings destination: - plugin: entity:field_instance_config + plugin: entity:field_config migration_dependencies: required: - d6_node_type diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_field_instance.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_field_instance.yml index f46b49b..42fadb2 100644 --- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_field_instance.yml +++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_field_instance.yml @@ -17,7 +17,7 @@ process: 'settings/file_extensions': file_extensions 'settings/max_filesize': max_filesize destination: - plugin: entity:field_instance_config + plugin: entity:field_config migration_dependencies: required: - d6_upload_field diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_field_instance.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_field_instance.yml index ae4bfae..ef6c053 100644 --- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_field_instance.yml +++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_field_instance.yml @@ -24,7 +24,7 @@ process: 'settings/max_filesize': max_filesize 'settings/max_resolution': max_resolution destination: - plugin: entity:field_instance_config + plugin: entity:field_config migration_dependencies: required: - d6_user_picture_field diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_field_instance.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_field_instance.yml index eb44225..ebf139e 100644 --- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_field_instance.yml +++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_field_instance.yml @@ -15,7 +15,7 @@ process: field_name: name required: required destination: - plugin: entity:field_instance_config + plugin: entity:field_config migration_dependencies: required: - d6_user_profile_field diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_field_instance.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_field_instance.yml index 4d6c202..15d8186 100644 --- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_field_instance.yml +++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_field_instance.yml @@ -15,7 +15,7 @@ process: migration: d6_taxonomy_vocabulary source: vid destination: - plugin: entity:field_instance_config + plugin: entity:field_config migration_dependencies: required: - d6_vocabulary_field diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldInstanceSettings.php b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldInstanceSettings.php index 7f16cef..22ba334 100644 --- a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldInstanceSettings.php +++ b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldInstanceSettings.php @@ -12,7 +12,7 @@ /** * @MigrateProcessPlugin( - * id = "d6_field_instance_settings" + * id = "d6_field_field_settings" * ) */ class FieldInstanceSettings extends ProcessPluginBase { diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php index 10a8b37..39917a2 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php @@ -33,7 +33,7 @@ protected function setUp() { 'name' => 'field_test', 'type' => 'text', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'node', 'field_name' => 'field_test', 'bundle' => 'story', @@ -44,7 +44,7 @@ protected function setUp() { 'type' => 'integer', 'cardinality' => -1, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'node', 'field_name' => 'field_test_two', 'bundle' => 'story', diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php index 15d496e..159e7ac 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php @@ -34,7 +34,7 @@ protected function setUp() { 'name' => 'field_test', 'type' => 'text', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'node', 'field_name' => 'field_test', 'bundle' => 'story', @@ -45,7 +45,7 @@ protected function setUp() { 'type' => 'integer', 'cardinality' => -1, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'node', 'field_name' => 'field_test_two', 'bundle' => 'story', @@ -55,7 +55,7 @@ protected function setUp() { 'name' => 'field_test_three', 'type' => 'decimal', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'node', 'field_name' => 'field_test_three', 'bundle' => 'story', @@ -65,7 +65,7 @@ protected function setUp() { 'name' => 'field_test_integer_selectlist', 'type' => 'integer', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'node', 'field_name' => 'field_test_integer_selectlist', 'bundle' => 'story', diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableDisplayBase.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableDisplayBase.php index 9c967f5..58765c8 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableDisplayBase.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableDisplayBase.php @@ -57,7 +57,7 @@ protected function setUp() { ))->save(); foreach ($this->types as $type) { entity_create('node_type', array('type' => $type))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'label' => 'Comments', 'description' => '', 'field_name' => 'comment', diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php index d154214..6e6f02e 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php @@ -83,14 +83,14 @@ protected function setUp() { public function testFieldInstanceSettings() { $entity = entity_create('node', array('type' => 'story')); // Test a text field. - $field = entity_load('field_instance_config', 'node.story.field_test'); + $field = entity_load('field_config', 'node.story.field_test'); $this->assertEqual($field->label(), 'Text Field'); $expected = array('max_length' => 255, 'text_processing' => 1); $this->assertEqual($field->getSettings(), $expected); $this->assertEqual('text for default value', $entity->field_test->value); // Test a number field. - $field = entity_load('field_instance_config', 'node.story.field_test_two'); + $field = entity_load('field_config', 'node.story.field_test_two'); $this->assertEqual($field->label(), 'Integer Field'); $expected = array( 'min' => '10', @@ -102,7 +102,7 @@ public function testFieldInstanceSettings() { ); $this->assertEqual($field->getSettings(), $expected); - $field = entity_load('field_instance_config', 'node.story.field_test_four'); + $field = entity_load('field_config', 'node.story.field_test_four'); $this->assertEqual($field->label(), 'Float Field'); $expected = array( 'min' => 100, @@ -113,12 +113,12 @@ public function testFieldInstanceSettings() { $this->assertEqual($field->getSettings(), $expected); // Test email field. - $field = entity_load('field_instance_config', 'node.story.field_test_email'); + $field = entity_load('field_config', 'node.story.field_test_email'); $this->assertEqual($field->label(), 'Email Field'); $this->assertEqual('benjy@example.com', $entity->field_test_email->value, 'Field field_test_email default_value is correct.'); // Test a filefield. - $field = entity_load('field_instance_config', 'node.story.field_test_filefield'); + $field = entity_load('field_config', 'node.story.field_test_filefield'); $this->assertEqual($field->label(), 'File Field'); $expected = array( 'file_extensions' => 'txt pdf doc', @@ -137,7 +137,7 @@ public function testFieldInstanceSettings() { $this->assertFalse(array_diff_assoc($expected, $field->getSettings())); // Test a link field. - $field = entity_load('field_instance_config', 'node.story.field_test_link'); + $field = entity_load('field_config', 'node.story.field_test_link'); $this->assertEqual($field->label(), 'Link Field'); $expected = array('title' => 2, 'link_type' => LinkItemInterface::LINK_GENERIC); $this->assertEqual($field->getSettings(), $expected); diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php index 4ec8f0e..e3718c1 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php @@ -7,7 +7,7 @@ namespace Drupal\migrate_drupal\Tests\d6; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\migrate\MigrateExecutable; use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase; @@ -65,8 +65,8 @@ public function testNodeType() { $this->assertEqual(array('test_page'), $migration->getIdMap()->lookupDestinationID(array('test_page'))); // Test we have a body field. - $instance = FieldInstanceConfig::loadByName('node', 'test_page', 'body'); - $this->assertEqual($instance->getLabel(), 'This is the body field label', 'Body field was found.'); + $field = FieldConfig::loadByName('node', 'test_page', 'body'); + $this->assertEqual($field->getLabel(), 'This is the body field label', 'Body field was found.'); // Test the test_story content type. $node_type_story = entity_load('node_type', 'test_story'); @@ -83,8 +83,8 @@ public function testNodeType() { $this->assertEqual(array('test_story'), $migration->getIdMap()->lookupDestinationID(array('test_story'))); // Test we don't have a body field. - $instance = FieldInstanceConfig::loadByName('node', 'test_story', 'body'); - $this->assertEqual($instance, NULL, 'No body field found'); + $field = FieldConfig::loadByName('node', 'test_story', 'body'); + $this->assertEqual($field, NULL, 'No body field found'); // Test the test_event content type. $node_type_event = entity_load('node_type', 'test_event'); @@ -102,7 +102,7 @@ public function testNodeType() { $this->assertEqual(array('test_event'), $migration->getIdMap()->lookupDestinationID(array('test_event'))); // Test we have a body field. - $instance = FieldInstanceConfig::loadByName('node', 'test_event', 'body'); - $this->assertEqual($instance->getLabel(), 'Body', 'Body field was found.'); + $field = FieldConfig::loadByName('node', 'test_event', 'body'); + $this->assertEqual($field->getLabel(), 'Body', 'Body field was found.'); } } diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php index 8184dce..fd33123 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php @@ -90,7 +90,7 @@ protected function setUp() { // Create the field instances. foreach (Drupal6UserProfileFields::getData('profile_fields') as $field) { - entity_create('field_instance_config', array( + entity_create('field_config', array( 'label' => $field['title'], 'description' => '', 'field_name' => $field['name'], diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTestBase.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTestBase.php index 64886f7..fb14c7d 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTestBase.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTestBase.php @@ -45,7 +45,7 @@ protected function setUp() { ), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $name, 'entity_type' => 'node', 'bundle' => 'story', diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadBase.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadBase.php index 61b5501..d411a11 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadBase.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadBase.php @@ -58,7 +58,7 @@ protected function setUp() { 'display_field' => TRUE, ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => 'upload', 'entity_type' => 'node', 'bundle' => 'story', diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php index b807b21..89fea7d 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php @@ -64,18 +64,18 @@ protected function setUp() { * Tests the Drupal 6 upload settings to Drupal 8 field instance migration. */ public function testUploadFieldInstance() { - $field = entity_load('field_instance_config', 'node.page.upload'); + $field = entity_load('field_config', 'node.page.upload'); $settings = $field->getSettings(); $this->assertEqual($field->id(), 'node.page.upload'); $this->assertEqual($settings['file_extensions'], 'jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp'); $this->assertEqual($settings['max_filesize'], '1MB'); $this->assertEqual($settings['description_field'], TRUE); - $field = entity_load('field_instance_config', 'node.story.upload'); + $field = entity_load('field_config', 'node.story.upload'); $this->assertEqual($field->id(), 'node.story.upload'); // Shouldn't exist. - $field = entity_load('field_instance_config', 'node.article.upload'); + $field = entity_load('field_config', 'node.article.upload'); $this->assertTrue(is_null($field)); $this->assertEqual(array('node', 'page', 'upload'), entity_load('migration', 'd6_upload_field_instance')->getIdMap()->lookupDestinationID(array('page'))); diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php index 39a769b..6fb4886 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php @@ -52,7 +52,7 @@ protected function setUp() { * Tests the Drupal 6 user picture to Drupal 8 picture field instance migration. */ public function testUserPictureFieldInstance() { - $field = entity_load('field_instance_config', 'user.user.user_picture'); + $field = entity_load('field_config', 'user.user.user_picture'); $settings = $field->getSettings(); $this->assertEqual($settings['file_extensions'], 'png gif jpg jpeg'); $this->assertEqual($settings['file_directory'], 'pictures'); diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php index 8666cfa..8e46411 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php @@ -75,7 +75,7 @@ protected function setUp() { ))->save(); $field_data = Drupal6UserProfileFields::getData('profile_fields'); foreach ($field_data as $field) { - entity_create('field_instance_config', array( + entity_create('field_config', array( 'label' => $field['title'], 'description' => '', 'field_name' => $field['name'], diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php index 82503d6..415234c 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php @@ -70,7 +70,7 @@ protected function setUp() { ))->save(); $field_data = Drupal6UserProfileFields::getData('profile_fields'); foreach ($field_data as $field) { - entity_create('field_instance_config', array( + entity_create('field_config', array( 'label' => $field['title'], 'description' => '', 'field_name' => $field['name'], diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php index 2093ed4..0a8ea57 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php @@ -49,44 +49,44 @@ protected function setUp() { */ public function testUserProfileFields() { // Migrated a text field. - $field = entity_load('field_instance_config', 'user.user.profile_color'); + $field = entity_load('field_config', 'user.user.profile_color'); $this->assertEqual($field->label(), 'Favorite color'); $this->assertEqual($field->getDescription(), 'List your favorite color'); // Migrated a textarea. - $field = entity_load('field_instance_config', 'user.user.profile_biography'); + $field = entity_load('field_config', 'user.user.profile_biography'); $this->assertEqual($field->label(), 'Biography'); $this->assertEqual($field->getDescription(), 'Tell people a little bit about yourself'); // Migrated checkbox field. - $field = entity_load('field_instance_config', 'user.user.profile_sell_address'); + $field = entity_load('field_config', 'user.user.profile_sell_address'); $this->assertEqual($field->label(), 'Sell your email address?'); $this->assertEqual($field->getDescription(), "If you check this box, we'll sell your address to spammers to help line the pockets of our shareholders. Thanks!"); // Migrated selection field. - $field = entity_load('field_instance_config', 'user.user.profile_sold_to'); + $field = entity_load('field_config', 'user.user.profile_sold_to'); $this->assertEqual($field->label(), 'Sales Category'); $this->assertEqual($field->getDescription(), "Select the sales categories to which this user's address was sold."); // Migrated list field. - $field = entity_load('field_instance_config', 'user.user.profile_bands'); + $field = entity_load('field_config', 'user.user.profile_bands'); $this->assertEqual($field->label(), 'Favorite bands'); $this->assertEqual($field->getDescription(), "Enter your favorite bands. When you've saved your profile, you'll be able to find other people with the same favorites."); /* // Migrated URL field. - $field = entity_load('field_instance_config', 'user.user.profile_blog'); + $field = entity_load('field_config', 'user.user.profile_blog'); $this->assertEqual($field->label(), 'Your blog'); $this->assertEqual($field->getDescription(), "Paste the full URL, including http://, of your personal blog."); */ // Migrated date field. - $field = entity_load('field_instance_config', 'user.user.profile_birthdate'); + $field = entity_load('field_config', 'user.user.profile_birthdate'); $this->assertEqual($field->label(), 'Birthdate'); $this->assertEqual($field->getDescription(), "Enter your birth date and we'll send you a coupon."); // Another migrated checkbox field, with a different source visibility setting. - $field = entity_load('field_instance_config', 'user.user.profile_love_migrations'); + $field = entity_load('field_config', 'user.user.profile_love_migrations'); $this->assertEqual($field->label(), 'I love migrations'); $this->assertEqual($field->getDescription(), "If you check this box, you love migrations."); } diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php index 2c72e19..3d564f0 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php @@ -44,7 +44,7 @@ protected function setUp() { 'type' => 'image', 'translatable' => '0', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'label' => 'User Picture', 'description' => '', 'field_name' => 'user_picture', diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php index 42fd565..3948694 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php @@ -38,7 +38,7 @@ protected function setUp() { foreach (array('page', 'article', 'story') as $type) { entity_create('node_type', array('type' => $type))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'label' => 'Tags', 'description' => '', 'field_name' => 'tags', diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php index cd8263e..7fdd95f 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php @@ -38,7 +38,7 @@ protected function setUp() { foreach (array('page', 'article', 'story') as $type) { entity_create('node_type', array('type' => $type))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'label' => 'Tags', 'description' => '', 'field_name' => 'tags', diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php index 6e54c09..1ee83bb 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php @@ -83,12 +83,12 @@ protected function setUp() { public function testVocabularyFieldInstance() { // Test that the field exists. $field_id = 'node.article.tags'; - $field = entity_load('field_instance_config', $field_id); + $field = entity_load('field_config', $field_id); $this->assertEqual($field->id(), $field_id, 'Field instance exists on article bundle.'); // Test the page bundle as well. $field_id = 'node.page.tags'; - $field = entity_load('field_instance_config', $field_id); + $field = entity_load('field_config', $field_id); $this->assertEqual($field->id(), $field_id, 'Field instance exists on page bundle.'); $this->assertEqual(array('node', 'article', 'tags'), entity_load('migration', 'd6_vocabulary_field_instance')->getIdMap()->lookupDestinationID(array(4, 'article'))); diff --git a/core/modules/node/node.module b/core/modules/node/node.module index d96052d..01ab87b 100644 --- a/core/modules/node/node.module +++ b/core/modules/node/node.module @@ -18,7 +18,7 @@ use Drupal\Core\Database\Query\AlterableInterface; use Drupal\Core\Database\Query\SelectInterface; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\node\Entity\Node; use Drupal\node\Entity\NodeType; use Drupal\node\NodeTypeInterface; @@ -345,16 +345,15 @@ function node_type_load($name) { * * @param \Drupal\node\NodeTypeInterface $type * A node type object. - * @param $label + * @param string $label * (optional) The label for the body instance. * - * @return - * Body field instance. + * @return \Drupal\field\Entity\FieldConfig Body field. */ function node_add_body_field(NodeTypeInterface $type, $label = 'Body') { // Add or remove the body field, as needed. $field_storage = FieldStorageConfig::loadByName('node', 'body'); - $instance = FieldInstanceConfig::loadByName('node', $type->id(), 'body'); + $field = FieldConfig::loadByName('node', $type->id(), 'body'); if (empty($field_storage)) { $field_storage = entity_create('field_storage_config', array( 'name' => 'body', @@ -363,14 +362,14 @@ function node_add_body_field(NodeTypeInterface $type, $label = 'Body') { )); $field_storage->save(); } - if (empty($instance)) { - $instance = entity_create('field_instance_config', array( + if (empty($field)) { + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $type->id(), 'label' => $label, 'settings' => array('display_summary' => TRUE), )); - $instance->save(); + $field->save(); // Assign widget settings for the 'default' form mode. entity_get_form_display('node', $type->type, 'default') @@ -400,7 +399,7 @@ function node_add_body_field(NodeTypeInterface $type, $label = 'Body') { } } - return $instance; + return $field; } /** diff --git a/core/modules/node/src/Plugin/views/wizard/Node.php b/core/modules/node/src/Plugin/views/wizard/Node.php index 93401db..9da3633 100644 --- a/core/modules/node/src/Plugin/views/wizard/Node.php +++ b/core/modules/node/src/Plugin/views/wizard/Node.php @@ -271,7 +271,7 @@ protected function buildFilters(&$form, FormStateInterface $form_state) { $taxonomy_fields = array_filter(\Drupal::entityManager()->getFieldDefinitions($this->entityTypeId, $bundle), function ($field_definition) { return $field_definition->getType() == 'taxonomy_term_reference'; }); - foreach ($taxonomy_fields as $field_name => $instance) { + foreach ($taxonomy_fields as $field_name => $field) { $widget = $display->getComponent($field_name); // We define "tag-like" taxonomy fields as ones that use the // "Autocomplete term widget (tagging)" widget. diff --git a/core/modules/node/src/Tests/Config/NodeImportCreateTest.php b/core/modules/node/src/Tests/Config/NodeImportCreateTest.php index bcff81c..ffcafcb 100644 --- a/core/modules/node/src/Tests/Config/NodeImportCreateTest.php +++ b/core/modules/node/src/Tests/Config/NodeImportCreateTest.php @@ -7,7 +7,7 @@ namespace Drupal\node\Tests\Config; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\simpletest\DrupalUnitTestBase; /** @@ -73,7 +73,7 @@ public function testImportCreate() { // Check that the content type was created. $node_type = entity_load('node_type', $node_type_id); $this->assertTrue($node_type, 'Import node type from staging was created.'); - $this->assertFalse(FieldInstanceConfig::loadByName('node', $node_type_id, 'body')); + $this->assertFalse(FieldConfig::loadByName('node', $node_type_id, 'body')); } } diff --git a/core/modules/node/src/Tests/MultiStepNodeFormBasicOptionsTest.php b/core/modules/node/src/Tests/MultiStepNodeFormBasicOptionsTest.php index 33375fa..0391e5b 100644 --- a/core/modules/node/src/Tests/MultiStepNodeFormBasicOptionsTest.php +++ b/core/modules/node/src/Tests/MultiStepNodeFormBasicOptionsTest.php @@ -39,7 +39,7 @@ function testMultiStepNodeFormBasicOptions() { ))->save(); // Attach an instance of the field to the page content type. - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => 'node', 'bundle' => 'page', diff --git a/core/modules/node/src/Tests/NodeAccessFieldTest.php b/core/modules/node/src/Tests/NodeAccessFieldTest.php index feb50a8..d31391e 100644 --- a/core/modules/node/src/Tests/NodeAccessFieldTest.php +++ b/core/modules/node/src/Tests/NodeAccessFieldTest.php @@ -58,7 +58,7 @@ protected function setUp() { 'entity_type' => 'node', 'type' => 'text' ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => 'node', 'bundle' => 'page', diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php index ce664ab..c49a02f 100644 --- a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php +++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php @@ -65,7 +65,7 @@ protected function setUp() { )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'page', 'widget' => array( diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php index ed91a57..442adb1 100644 --- a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php +++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php @@ -56,7 +56,7 @@ protected function setUp() { )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'page', 'widget' => array( diff --git a/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php b/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php index 7c904d2..84cba99 100644 --- a/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php +++ b/core/modules/node/src/Tests/NodeTypeRenameConfigImportTest.php @@ -89,7 +89,7 @@ public function testConfigurationRename() { 'entity.form_display.node.' . $active_type . '.default::entity.form_display.node.' . $staged_type . '.default', 'entity.view_display.node.' . $active_type . '.default::entity.view_display.node.' . $staged_type . '.default', 'entity.view_display.node.' . $active_type . '.teaser::entity.view_display.node.' . $staged_type . '.teaser', - 'field.instance.node.' . $active_type . '.body::field.instance.node.' . $staged_type . '.body', + 'field.field.node.' . $active_type . '.body::field.field.node.' . $staged_type . '.body', ); $renames = $this->configImporter()->getUnprocessedConfiguration('rename'); $this->assertIdentical($expected, $renames); diff --git a/core/modules/node/src/Tests/NodeTypeTest.php b/core/modules/node/src/Tests/NodeTypeTest.php index 8c2d128..3125928 100644 --- a/core/modules/node/src/Tests/NodeTypeTest.php +++ b/core/modules/node/src/Tests/NodeTypeTest.php @@ -6,7 +6,7 @@ */ namespace Drupal\node\Tests; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Ensures that node type functions work correctly. @@ -78,8 +78,8 @@ function testNodeTypeEditing() { $web_user = $this->drupalCreateUser(array('bypass node access', 'administer content types', 'administer node fields')); $this->drupalLogin($web_user); - $instance = FieldInstanceConfig::loadByName('node', 'page', 'body'); - $this->assertEqual($instance->getLabel(), 'Body', 'Body field was found.'); + $field = FieldConfig::loadByName('node', 'page', 'body'); + $this->assertEqual($field->getLabel(), 'Body', 'Body field was found.'); // Verify that title and body fields are displayed. $this->drupalGet('node/add/page'); diff --git a/core/modules/node/src/Tests/PagePreviewTest.php b/core/modules/node/src/Tests/PagePreviewTest.php index 708fc1a..31a58c6 100644 --- a/core/modules/node/src/Tests/PagePreviewTest.php +++ b/core/modules/node/src/Tests/PagePreviewTest.php @@ -75,7 +75,7 @@ protected function setUp() { ), 'cardinality' => '-1', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => 'node', 'bundle' => 'page', diff --git a/core/modules/node/tests/modules/node_access_test/node_access_test.module b/core/modules/node/tests/modules/node_access_test/node_access_test.module index 797cf25..47727e0 100644 --- a/core/modules/node/tests/modules/node_access_test/node_access_test.module +++ b/core/modules/node/tests/modules/node_access_test/node_access_test.module @@ -20,7 +20,7 @@ */ use Drupal\field\Entity\FieldStorageConfig; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\node\NodeTypeInterface; use Drupal\node\NodeInterface; @@ -140,13 +140,13 @@ function node_access_test_add_field(NodeTypeInterface $type) { 'type' => 'integer', )); $field_storage->save(); - $instance = FieldInstanceConfig::create(array( + $field = FieldConfig::create(array( 'field_name' => 'private', 'entity_type' => 'node', 'bundle' => $type->id(), 'label' => 'Private', )); - $instance->save(); + $field->save(); // Assign widget settings for the 'default' form mode. entity_get_form_display('node', $type->id(), 'default') diff --git a/core/modules/options/config/schema/options.schema.yml b/core/modules/options/config/schema/options.schema.yml index 7a639cb..b34035c 100644 --- a/core/modules/options/config/schema/options.schema.yml +++ b/core/modules/options/config/schema/options.schema.yml @@ -21,7 +21,7 @@ field.list_integer.settings: type: string label: 'Allowed values function' -field.list_integer.instance_settings: +field.list_integer.field_settings: label: 'List (integer)' type: mapping mapping: { } @@ -58,7 +58,7 @@ field.list_float.settings: type: string label: 'Allowed values function' -field.list_float.instance_settings: +field.list_float.field_settings: label: 'List (float)' type: mapping mapping: { } @@ -95,7 +95,7 @@ field.list_text.settings: type: string label: 'Allowed values function' -field.list_text.instance_settings: +field.list_text.field_settings: label: 'List (float)' type: mapping mapping: { } diff --git a/core/modules/options/src/Tests/OptionsDynamicValuesTestBase.php b/core/modules/options/src/Tests/OptionsDynamicValuesTestBase.php index a48837b..74978da 100644 --- a/core/modules/options/src/Tests/OptionsDynamicValuesTestBase.php +++ b/core/modules/options/src/Tests/OptionsDynamicValuesTestBase.php @@ -41,7 +41,7 @@ protected function setUp() { 'allowed_values_function' => 'options_test_dynamic_values_callback', ), ))->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => 'entity_test_rev', 'bundle' => 'entity_test_rev', diff --git a/core/modules/options/src/Tests/OptionsFieldTest.php b/core/modules/options/src/Tests/OptionsFieldTest.php index 8832326..89e428e 100644 --- a/core/modules/options/src/Tests/OptionsFieldTest.php +++ b/core/modules/options/src/Tests/OptionsFieldTest.php @@ -76,7 +76,7 @@ function testUpdateAllowedValues() { // Options are reset when a new field with the same name is created. $this->fieldStorage->delete(); entity_create('field_storage_config', $this->fieldStorageDefinition)->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->fieldName, 'entity_type' => 'entity_test', 'bundle' => 'entity_test', diff --git a/core/modules/options/src/Tests/OptionsFieldUITest.php b/core/modules/options/src/Tests/OptionsFieldUITest.php index ebbba4b..33f7d2e 100644 --- a/core/modules/options/src/Tests/OptionsFieldUITest.php +++ b/core/modules/options/src/Tests/OptionsFieldUITest.php @@ -252,7 +252,7 @@ protected function createOptionsField($type) { 'entity_type' => 'node', 'type' => $type, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => 'node', 'bundle' => $this->type, diff --git a/core/modules/options/src/Tests/OptionsFieldUnitTestBase.php b/core/modules/options/src/Tests/OptionsFieldUnitTestBase.php index 659928c..c101310 100644 --- a/core/modules/options/src/Tests/OptionsFieldUnitTestBase.php +++ b/core/modules/options/src/Tests/OptionsFieldUnitTestBase.php @@ -46,9 +46,9 @@ /** * The list field instance used in the test. * - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; /** * {@inheritdoc} @@ -69,11 +69,11 @@ protected function setUp() { $this->fieldStorage = entity_create('field_storage_config', $this->fieldStorageDefinition); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', )); - $this->instance->save(); + $this->field->save(); entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($this->fieldName, array( diff --git a/core/modules/options/src/Tests/OptionsWidgetsTest.php b/core/modules/options/src/Tests/OptionsWidgetsTest.php index 4d25950..35ced84 100644 --- a/core/modules/options/src/Tests/OptionsWidgetsTest.php +++ b/core/modules/options/src/Tests/OptionsWidgetsTest.php @@ -96,11 +96,11 @@ protected function setUp() { */ function testRadioButtons() { // Create an instance of the 'single value' field. - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $this->card_1, 'bundle' => 'entity_test', )); - $instance->save(); + $field->save(); entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($this->card_1->getName(), array( 'type' => 'options_buttons', @@ -142,8 +142,8 @@ function testRadioButtons() { // Check that required radios with one option is auto-selected. $this->card_1->settings['allowed_values'] = array(99 => 'Only allowed value'); $this->card_1->save(); - $instance->required = TRUE; - $instance->save(); + $field->required = TRUE; + $field->save(); $this->drupalGet('entity_test/manage/' . $entity->id()); $this->assertFieldChecked('edit-card-1-99'); } @@ -153,11 +153,11 @@ function testRadioButtons() { */ function testCheckBoxes() { // Create an instance of the 'multiple values' field. - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $this->card_2, 'bundle' => 'entity_test', )); - $instance->save(); + $field->save(); entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($this->card_2->getName(), array( 'type' => 'options_buttons', @@ -231,8 +231,8 @@ function testCheckBoxes() { // Required checkbox with one option is auto-selected. $this->card_2->settings['allowed_values'] = array(99 => 'Only allowed value'); $this->card_2->save(); - $instance->required = TRUE; - $instance->save(); + $field->required = TRUE; + $field->save(); $this->drupalGet('entity_test/manage/' . $entity->id()); $this->assertFieldChecked('edit-card-2-99'); } @@ -242,12 +242,12 @@ function testCheckBoxes() { */ function testSelectListSingle() { // Create an instance of the 'single value' field. - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $this->card_1, 'bundle' => 'entity_test', 'required' => TRUE, )); - $instance->save(); + $field->save(); entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($this->card_1->getName(), array( 'type' => 'options_select', @@ -277,7 +277,7 @@ function testSelectListSingle() { // Submit form: select invalid 'none' option. $edit = array('card_1' => '_none'); $this->drupalPostForm(NULL, $edit, t('Save')); - $this->assertRaw(t('!title field is required.', array('!title' => $instance->getName())), 'Cannot save a required field when selecting "none" from the select list.'); + $this->assertRaw(t('!title field is required.', array('!title' => $field->getName())), 'Cannot save a required field when selecting "none" from the select list.'); // Submit form: select first option. $edit = array('card_1' => 0); @@ -293,8 +293,8 @@ function testSelectListSingle() { $this->assertNoOptionSelected('edit-card-1', 2); // Make the field non required. - $instance->required = FALSE; - $instance->save(); + $field->required = FALSE; + $field->save(); // Display form. $this->drupalGet('entity_test/manage/' . $entity->id()); @@ -342,11 +342,11 @@ function testSelectListSingle() { */ function testSelectListMultiple() { // Create an instance of the 'multiple values' field. - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $this->card_2, 'bundle' => 'entity_test', )); - $instance->save(); + $field->save(); entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($this->card_2->getName(), array( 'type' => 'options_select', @@ -415,8 +415,8 @@ function testSelectListMultiple() { $this->assertFieldValues($entity_init, 'card_2', array()); // A required select list does not have an empty key. - $instance->required = TRUE; - $instance->save(); + $field->required = TRUE; + $field->save(); $this->drupalGet('entity_test/manage/' . $entity->id()); $this->assertFalse($this->xpath('//select[@id=:id]//option[@value=""]', array(':id' => 'edit-card-2')), 'A required select list does not have an empty key.'); @@ -429,8 +429,8 @@ function testSelectListMultiple() { $this->card_2->settings['allowed_values'] = array(); $this->card_2->settings['allowed_values_function'] = 'options_test_allowed_values_callback'; $this->card_2->save(); - $instance->required = FALSE; - $instance->save(); + $field->required = FALSE; + $field->save(); // Display form: with no field data, nothing is selected. $this->drupalGet('entity_test/manage/' . $entity->id()); diff --git a/core/modules/quickedit/src/Tests/EditorSelectionTest.php b/core/modules/quickedit/src/Tests/EditorSelectionTest.php index 10bf38b..0ef18ab 100644 --- a/core/modules/quickedit/src/Tests/EditorSelectionTest.php +++ b/core/modules/quickedit/src/Tests/EditorSelectionTest.php @@ -55,7 +55,7 @@ protected function getSelectedEditor($entity_id, $field_name, $view_mode = 'defa */ public function testText() { $field_name = 'field_text'; - $this->createFieldWithInstance( + $this->createFieldWithStorage( $field_name, 'text', 1, 'Simple text field', // Instance settings. array('text_processing' => 0), @@ -77,13 +77,13 @@ public function testText() { $this->assertEqual('plain_text', $this->getSelectedEditor($entity->id(), $field_name), "Without text processing, cardinality 1, the 'plain_text' editor is selected."); // Editor selection with text processing, cardinality 1. - $this->fields->field_text_instance->settings['text_processing'] = 1; - $this->fields->field_text_instance->save(); + $this->fields->field_text_field->settings['text_processing'] = 1; + $this->fields->field_text_field->save(); $this->assertEqual('form', $this->getSelectedEditor($entity->id(), $field_name), "With text processing, cardinality 1, the 'form' editor is selected."); // Editor selection without text processing, cardinality 1 (again). - $this->fields->field_text_instance->settings['text_processing'] = 0; - $this->fields->field_text_instance->save(); + $this->fields->field_text_field->settings['text_processing'] = 0; + $this->fields->field_text_field->save(); $this->assertEqual('plain_text', $this->getSelectedEditor($entity->id(), $field_name), "Without text processing again, cardinality 1, the 'plain_text' editor is selected."); // Editor selection without text processing, cardinality >1 @@ -92,8 +92,8 @@ public function testText() { $this->assertEqual('form', $this->getSelectedEditor($entity->id(), $field_name), "Without text processing, cardinality >1, the 'form' editor is selected."); // Editor selection with text processing, cardinality >1 - $this->fields->field_text_instance->settings['text_processing'] = 1; - $this->fields->field_text_instance->save(); + $this->fields->field_text_field->settings['text_processing'] = 1; + $this->fields->field_text_field->save(); $this->assertEqual('form', $this->getSelectedEditor($entity->id(), $field_name), "With text processing, cardinality >1, the 'form' editor is selected."); } @@ -109,7 +109,7 @@ public function testTextWysiwyg() { $this->editorSelector = new EditorSelector($this->editorManager, $this->container->get('plugin.manager.field.formatter')); $field_name = 'field_textarea'; - $this->createFieldWithInstance( + $this->createFieldWithStorage( $field_name, 'text', 1, 'Long text field', // Instance settings. array('text_processing' => 1), @@ -146,7 +146,7 @@ public function testTextWysiwyg() { */ public function testNumber() { $field_name = 'field_nr'; - $this->createFieldWithInstance( + $this->createFieldWithStorage( $field_name, 'integer', 1, 'Simple number field', // Instance settings. array(), diff --git a/core/modules/quickedit/src/Tests/MetadataGeneratorTest.php b/core/modules/quickedit/src/Tests/MetadataGeneratorTest.php index bf1df14..5bfcffe 100644 --- a/core/modules/quickedit/src/Tests/MetadataGeneratorTest.php +++ b/core/modules/quickedit/src/Tests/MetadataGeneratorTest.php @@ -68,7 +68,7 @@ protected function setUp() { public function testSimpleEntityType() { $field_1_name = 'field_text'; $field_1_label = 'Simple text field'; - $this->createFieldWithInstance( + $this->createFieldWithStorage( $field_1_name, 'text', 1, $field_1_label, // Instance settings. array('text_processing' => 0), @@ -81,7 +81,7 @@ public function testSimpleEntityType() { ); $field_2_name = 'field_nr'; $field_2_label = 'Simple number field'; - $this->createFieldWithInstance( + $this->createFieldWithStorage( $field_2_name, 'integer', 1, $field_2_label, // Instance settings. array(), @@ -140,7 +140,7 @@ public function testEditorWithCustomMetadata() { // Create a rich text field. $field_name = 'field_rich'; $field_label = 'Rich text field'; - $this->createFieldWithInstance( + $this->createFieldWithStorage( $field_name, 'text', 1, $field_label, // Instance settings. array('text_processing' => 1), diff --git a/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php b/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php index 7e91724..4f4e4d8 100644 --- a/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php +++ b/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php @@ -89,7 +89,7 @@ protected function setUp() { ), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => 'node', 'label' => 'Tags', diff --git a/core/modules/quickedit/src/Tests/QuickEditTestBase.php b/core/modules/quickedit/src/Tests/QuickEditTestBase.php index 4f4ece7..417af86 100644 --- a/core/modules/quickedit/src/Tests/QuickEditTestBase.php +++ b/core/modules/quickedit/src/Tests/QuickEditTestBase.php @@ -28,7 +28,7 @@ * - $this->fields->{$field_name}_field_storage * - $this->fields->{$field_name}_instance * - * @see \Drupal\quickedit\Tests\QuickEditTestBase::createFieldWithInstance() + * @see \Drupal\quickedit\Tests\QuickEditTestBase::createFieldWithStorage() * * @var \ArrayObject */ @@ -57,7 +57,7 @@ protected function setUp() { * The field's cardinality. * @param string $label * The field's label (used everywhere: widget label, formatter label). - * @param array $instance_settings + * @param array $field_settings * @param string $widget_type * The widget type. * @param array $widget_settings @@ -67,7 +67,7 @@ protected function setUp() { * @param array $formatter_settings * The formatter settings. */ - protected function createFieldWithInstance($field_name, $type, $cardinality, $label, $instance_settings, $widget_type, $widget_settings, $formatter_type, $formatter_settings) { + protected function createFieldWithStorage($field_name, $type, $cardinality, $label, $field_settings, $widget_type, $widget_settings, $formatter_type, $formatter_settings) { $field_storage = $field_name . '_field_storage'; $this->fields->$field_storage = entity_create('field_storage_config', array( 'name' => $field_name, @@ -77,16 +77,16 @@ protected function createFieldWithInstance($field_name, $type, $cardinality, $la )); $this->fields->$field_storage->save(); - $instance = $field_name . '_instance'; - $this->fields->$instance = entity_create('field_instance_config', array( + $field = $field_name . '_field'; + $this->fields->$field = entity_create('field_config', array( 'field_storage' => $this->fields->$field_storage, 'bundle' => 'entity_test', 'label' => $label, 'description' => $label, 'weight' => mt_rand(0, 127), - 'settings' => $instance_settings, + 'settings' => $field_settings, )); - $this->fields->$instance->save(); + $this->fields->$field->save(); entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($field_name, array( diff --git a/core/modules/rdf/src/Tests/Field/EntityReferenceRdfaTest.php b/core/modules/rdf/src/Tests/Field/EntityReferenceRdfaTest.php index 781ad69..7160bf0 100644 --- a/core/modules/rdf/src/Tests/Field/EntityReferenceRdfaTest.php +++ b/core/modules/rdf/src/Tests/Field/EntityReferenceRdfaTest.php @@ -53,7 +53,7 @@ protected function setUp() { $this->installEntitySchema('entity_test_rev'); - entity_reference_create_instance($this->entityType, $this->bundle, $this->fieldName, 'Field test', $this->entityType); + entity_reference_create_field($this->entityType, $this->bundle, $this->fieldName, 'Field test', $this->entityType); // Add the mapping. $mapping = rdf_get_mapping('entity_test', 'entity_test'); diff --git a/core/modules/rdf/src/Tests/Field/FieldRdfaTestBase.php b/core/modules/rdf/src/Tests/Field/FieldRdfaTestBase.php index 5332912..3ad3b27 100644 --- a/core/modules/rdf/src/Tests/Field/FieldRdfaTestBase.php +++ b/core/modules/rdf/src/Tests/Field/FieldRdfaTestBase.php @@ -116,7 +116,7 @@ protected function createTestField() { 'entity_type' => 'entity_test', 'type' => $this->fieldType, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => $this->fieldName, 'bundle' => 'entity_test', diff --git a/core/modules/rdf/src/Tests/Field/TaxonomyTermReferenceRdfaTest.php b/core/modules/rdf/src/Tests/Field/TaxonomyTermReferenceRdfaTest.php index ed4bbf5..301e660 100644 --- a/core/modules/rdf/src/Tests/Field/TaxonomyTermReferenceRdfaTest.php +++ b/core/modules/rdf/src/Tests/Field/TaxonomyTermReferenceRdfaTest.php @@ -68,7 +68,7 @@ protected function setUp() { ), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => $this->fieldName, 'bundle' => 'entity_test', diff --git a/core/modules/rdf/src/Tests/TaxonomyTermFieldAttributesTest.php b/core/modules/rdf/src/Tests/TaxonomyTermFieldAttributesTest.php index 3d55fef..d6dd046 100644 --- a/core/modules/rdf/src/Tests/TaxonomyTermFieldAttributesTest.php +++ b/core/modules/rdf/src/Tests/TaxonomyTermFieldAttributesTest.php @@ -163,7 +163,7 @@ protected function createTaxonomyTermReferenceField($field_name, $vocabulary) { ), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => 'node', 'bundle' => 'article', diff --git a/core/modules/search/src/Tests/SearchCommentTest.php b/core/modules/search/src/Tests/SearchCommentTest.php index c64d3ed..70d8c85 100644 --- a/core/modules/search/src/Tests/SearchCommentTest.php +++ b/core/modules/search/src/Tests/SearchCommentTest.php @@ -9,7 +9,7 @@ use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface; use Drupal\Component\Utility\String; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Tests integration searching comments. @@ -74,9 +74,9 @@ function testSearchResultsComment() { $comment_body = 'Test comment body'; // Make preview optional. - $instance = FieldInstanceConfig::loadByName('node', 'article', 'comment'); - $instance->settings['preview'] = DRUPAL_OPTIONAL; - $instance->save(); + $field = FieldConfig::loadByName('node', 'article', 'comment'); + $field->settings['preview'] = DRUPAL_OPTIONAL; + $field->save(); // Allow anonymous users to search content. $edit = array( @@ -146,9 +146,9 @@ function testSearchResultsCommentAccess() { // Create a node. // Make preview optional. - $instance = FieldInstanceConfig::loadByName('node', 'article', 'comment'); - $instance->settings['preview'] = DRUPAL_OPTIONAL; - $instance->save(); + $field = FieldConfig::loadByName('node', 'article', 'comment'); + $field->settings['preview'] = DRUPAL_OPTIONAL; + $field->save(); $this->node = $this->drupalCreateNode(array('type' => 'article')); // Post a comment using 'Full HTML' text format. diff --git a/core/modules/serialization/src/Tests/EntityResolverTest.php b/core/modules/serialization/src/Tests/EntityResolverTest.php index db65692..d3cd12c 100644 --- a/core/modules/serialization/src/Tests/EntityResolverTest.php +++ b/core/modules/serialization/src/Tests/EntityResolverTest.php @@ -41,7 +41,7 @@ protected function setUp() { ))->save(); // Create the test field instance. - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test_mulrev', 'field_name' => 'field_test_entity_reference', 'bundle' => 'entity_test_mulrev', diff --git a/core/modules/serialization/src/Tests/NormalizerTestBase.php b/core/modules/serialization/src/Tests/NormalizerTestBase.php index 8d5bf5c..531c53d 100644 --- a/core/modules/serialization/src/Tests/NormalizerTestBase.php +++ b/core/modules/serialization/src/Tests/NormalizerTestBase.php @@ -34,7 +34,7 @@ protected function setUp() { 'cardinality' => 1, 'translatable' => FALSE, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test_mulrev', 'field_name' => 'field_test_text', 'bundle' => 'entity_test_mulrev', diff --git a/core/modules/simpletest/src/Tests/KernelTestBaseTest.php b/core/modules/simpletest/src/Tests/KernelTestBaseTest.php index adf573e..fe342e6 100644 --- a/core/modules/simpletest/src/Tests/KernelTestBaseTest.php +++ b/core/modules/simpletest/src/Tests/KernelTestBaseTest.php @@ -256,7 +256,7 @@ function testEnableModulesFixedList() { 'type' => 'test_field' )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', ))->save(); diff --git a/core/modules/system/src/Tests/Ajax/MultiFormTest.php b/core/modules/system/src/Tests/Ajax/MultiFormTest.php index 1d6c505..6d14123 100644 --- a/core/modules/system/src/Tests/Ajax/MultiFormTest.php +++ b/core/modules/system/src/Tests/Ajax/MultiFormTest.php @@ -37,7 +37,7 @@ protected function setUp() { 'type' => 'text', 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => 'node', 'bundle' => 'page', diff --git a/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php b/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php index 94b27fc..5ad00f5 100644 --- a/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php +++ b/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php @@ -66,7 +66,7 @@ protected function setUp() { // this configurable field in later tests to ensure that modifications to // field (instance) configuration invalidate render cache entries. if ($this->entity->getEntityType()->isFieldable()) { - // Add field, so we can modify the Field and FieldInstance entities to + // Add field, so we can modify the Field and Field entities to // verify that changes to those indeed clear cache tags. entity_create('field_storage_config', array( 'name' => 'configurable_field', @@ -74,7 +74,7 @@ protected function setUp() { 'type' => 'test_field', 'settings' => array(), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => $this->entity->getEntityTypeId(), 'bundle' => $this->entity->bundle(), 'field_name' => 'configurable_field', @@ -193,7 +193,7 @@ protected function createReferenceTestEntities($referenced_entity) { 'target_type' => $referenced_entity->getEntityTypeId(), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => $entity_type, 'bundle' => $bundle, @@ -402,8 +402,8 @@ public function testReferencedEntity() { // Verify that after modifying a configurable field on the entity, there // is a cache miss. $this->pass("Test modification of referenced entity's configurable field.", 'Debug'); - $field_name = $this->entity->getEntityTypeId() . '.configurable_field'; - $field_storage = entity_load('field_storage_config', $field_name); + $field_storage_name = $this->entity->getEntityTypeId() . '.configurable_field'; + $field_storage = entity_load('field_storage_config', $field_storage_name); $field_storage->save(); $this->verifyPageCache($referencing_entity_path, 'MISS'); $this->verifyPageCache($listing_path, 'MISS'); @@ -417,9 +417,9 @@ public function testReferencedEntity() { // Verify that after modifying a configurable field instance on the // entity, there is a cache miss. $this->pass("Test modification of referenced entity's configurable field instance.", 'Debug'); - $field_instance_name = $this->entity->getEntityTypeId() . '.' . $this->entity->bundle() . '.configurable_field'; - $field_instance = entity_load('field_instance_config', $field_instance_name); - $field_instance->save(); + $field_name = $this->entity->getEntityTypeId() . '.' . $this->entity->bundle() . '.configurable_field'; + $field = entity_load('field_config', $field_name); + $field->save(); $this->verifyPageCache($referencing_entity_path, 'MISS'); $this->verifyPageCache($listing_path, 'MISS'); $this->verifyPageCache($non_referencing_entity_path, 'HIT'); diff --git a/core/modules/system/src/Tests/Entity/EntityFieldTest.php b/core/modules/system/src/Tests/Entity/EntityFieldTest.php index c69d2cf..2c90615 100644 --- a/core/modules/system/src/Tests/Entity/EntityFieldTest.php +++ b/core/modules/system/src/Tests/Entity/EntityFieldTest.php @@ -17,7 +17,7 @@ use Drupal\Core\TypedData\DataDefinitionInterface; use Drupal\Core\TypedData\Type\StringInterface; use Drupal\Core\TypedData\TypedDataInterface; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\node\Entity\NodeType; /** @@ -684,9 +684,9 @@ public function testComputedProperties() { */ protected function assertComputedProperties($entity_type) { // Make the test text field processed. - $instance = FieldInstanceConfig::loadByName($entity_type, $entity_type, 'field_test_text'); - $instance->settings['text_processing'] = 1; - $instance->save(); + $field = FieldConfig::loadByName($entity_type, $entity_type, 'field_test_text'); + $field->settings['text_processing'] = 1; + $field->save(); $entity = $this->createTestEntity($entity_type); $entity->field_test_text->value = "The text text to filter."; diff --git a/core/modules/system/src/Tests/Entity/EntityLanguageTestBase.php b/core/modules/system/src/Tests/Entity/EntityLanguageTestBase.php index b73495e..922b0b9 100644 --- a/core/modules/system/src/Tests/Entity/EntityLanguageTestBase.php +++ b/core/modules/system/src/Tests/Entity/EntityLanguageTestBase.php @@ -8,7 +8,7 @@ namespace Drupal\system\Tests\Entity; use Drupal\Core\Language\Language; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Base class for language-aware entity tests. @@ -37,13 +37,6 @@ protected $field_name; /** - * Test field instances, keyed by entity type. - * - * @var array - */ - protected $instance; - - /** * The untranslatable test field name. * * @var string @@ -75,7 +68,7 @@ protected function setUp() { // Create an untranslatable test field. $this->untranslatable_field_name = drupal_strtolower($this->randomMachineName() . '_field_name'); - // Create field instances in all entity variations. + // Create field fields in all entity variations. foreach (entity_test_entity_types() as $entity_type) { entity_create('field_storage_config', array( 'name' => $this->field_name, @@ -83,13 +76,13 @@ protected function setUp() { 'type' => 'text', 'cardinality' => 4, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => $entity_type, 'bundle' => $entity_type, 'translatable' => TRUE, ))->save(); - $this->instance[$entity_type] = entity_load('field_instance_config', $entity_type . '.' . $entity_type . '.' . $this->field_name); + $this->field[$entity_type] = entity_load('field_config', $entity_type . '.' . $entity_type . '.' . $this->field_name); entity_create('field_storage_config', array( 'name' => $this->untranslatable_field_name, @@ -97,7 +90,7 @@ protected function setUp() { 'type' => 'text', 'cardinality' => 4, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->untranslatable_field_name, 'entity_type' => $entity_type, 'bundle' => $entity_type, @@ -134,12 +127,12 @@ protected function setUp() { protected function toggleFieldTranslatability($entity_type, $bundle) { $fields = array($this->field_name, $this->untranslatable_field_name); foreach ($fields as $field_name) { - $instance = FieldInstanceConfig::loadByName($entity_type, $bundle, $field_name); - $translatable = !$instance->isTranslatable(); - $instance->set('translatable', $translatable); - $instance->save(); - $instance = FieldInstanceConfig::loadByName($entity_type, $bundle, $field_name); - $this->assertEqual($instance->isTranslatable(), $translatable, 'Field translatability changed.'); + $field = FieldConfig::loadByName($entity_type, $bundle, $field_name); + $translatable = !$field->isTranslatable(); + $field->set('translatable', $translatable); + $field->save(); + $field = FieldConfig::loadByName($entity_type, $bundle, $field_name); + $this->assertEqual($field->isTranslatable(), $translatable, 'Field translatability changed.'); } \Drupal::cache('entity')->deleteAll(); } diff --git a/core/modules/system/src/Tests/Entity/EntityQueryAggregateTest.php b/core/modules/system/src/Tests/Entity/EntityQueryAggregateTest.php index 5d6da72..08665b9 100644 --- a/core/modules/system/src/Tests/Entity/EntityQueryAggregateTest.php +++ b/core/modules/system/src/Tests/Entity/EntityQueryAggregateTest.php @@ -57,7 +57,7 @@ protected function setUp() { 'type' => 'integer', 'cardinality' => 2, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => 'entity_test', 'bundle' => 'entity_test', diff --git a/core/modules/system/src/Tests/Entity/EntityQueryRelationshipTest.php b/core/modules/system/src/Tests/Entity/EntityQueryRelationshipTest.php index 5ba0d74..222e925 100644 --- a/core/modules/system/src/Tests/Entity/EntityQueryRelationshipTest.php +++ b/core/modules/system/src/Tests/Entity/EntityQueryRelationshipTest.php @@ -83,7 +83,7 @@ protected function setUp() { entity_create('field_storage_config', $field)->save(); entity_test_create_bundle('test_bundle'); // Third, create the instance. - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => $this->fieldName, 'bundle' => 'test_bundle', diff --git a/core/modules/system/src/Tests/Entity/EntityQueryTest.php b/core/modules/system/src/Tests/Entity/EntityQueryTest.php index 182ca05..5fb3cce 100644 --- a/core/modules/system/src/Tests/Entity/EntityQueryTest.php +++ b/core/modules/system/src/Tests/Entity/EntityQueryTest.php @@ -78,7 +78,7 @@ protected function setUp() { } while ($bundles && strtolower($bundles[0]) >= strtolower($bundle)); entity_test_create_bundle($bundle); foreach ($field_storages as $field_storage) { - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $bundle, ))->save(); @@ -434,7 +434,7 @@ public function testCount() { )); $field_storage->save(); $bundle = $this->randomMachineName(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $bundle, ))->save(); diff --git a/core/modules/system/src/Tests/Entity/EntityTranslationTest.php b/core/modules/system/src/Tests/Entity/EntityTranslationTest.php index 1cb7c82..ce5bda4 100644 --- a/core/modules/system/src/Tests/Entity/EntityTranslationTest.php +++ b/core/modules/system/src/Tests/Entity/EntityTranslationTest.php @@ -435,14 +435,14 @@ function testEntityTranslationAPI() { // Check that per-language defaults are properly populated. $entity = $this->reloadEntity($entity); - $instance_id = implode('.', array($entity->getEntityTypeId(), $entity->bundle(), $this->field_name)); - $instance = $this->entityManager->getStorage('field_instance_config')->load($instance_id); - $instance->default_value_function = 'entity_test_field_default_value'; - $instance->save(); + $field_id = implode('.', array($entity->getEntityTypeId(), $entity->bundle(), $this->field_name)); + $field = $this->entityManager->getStorage('field_config')->load($field_id); + $field->default_value_function = 'entity_test_field_default_value'; + $field->save(); $translation = $entity->addTranslation($langcode2); - $field = $translation->get($this->field_name); - $this->assertEqual($field->value, $this->field_name . '_' . $langcode2, 'Language-aware default values correctly populated.'); - $this->assertEqual($field->getLangcode(), $langcode2, 'Field object has the expected langcode.'); + $field_storage = $translation->get($this->field_name); + $this->assertEqual($field_storage->value, $this->field_name . '_' . $langcode2, 'Language-aware default values correctly populated.'); + $this->assertEqual($field_storage->getLangcode(), $langcode2, 'Field object has the expected langcode.'); } /** diff --git a/core/modules/system/src/Tests/Entity/EntityViewBuilderTest.php b/core/modules/system/src/Tests/Entity/EntityViewBuilderTest.php index 65355fe..7f72526 100644 --- a/core/modules/system/src/Tests/Entity/EntityViewBuilderTest.php +++ b/core/modules/system/src/Tests/Entity/EntityViewBuilderTest.php @@ -85,7 +85,7 @@ public function testEntityViewBuilderCacheWithReferences() { $request->setMethod('GET'); // Create an entity reference field and an entity that will be referenced. - entity_reference_create_instance('entity_test', 'entity_test', 'reference_field', 'Reference', 'entity_test'); + entity_reference_create_field('entity_test', 'entity_test', 'reference_field', 'Reference', 'entity_test'); entity_get_display('entity_test', 'entity_test', 'full')->setComponent('reference_field')->save(); $entity_test_reference = $this->createTestEntity('entity_test'); $entity_test_reference->save(); diff --git a/core/modules/system/src/Tests/Entity/EntityWithUriCacheTagsTestBase.php b/core/modules/system/src/Tests/Entity/EntityWithUriCacheTagsTestBase.php index 6f1d7a8..6b09baa 100644 --- a/core/modules/system/src/Tests/Entity/EntityWithUriCacheTagsTestBase.php +++ b/core/modules/system/src/Tests/Entity/EntityWithUriCacheTagsTestBase.php @@ -86,8 +86,8 @@ public function testEntityUri() { // Verify that after modifying a configurable field on the entity, there // is a cache miss. $this->pass("Test modification of entity's configurable field.", 'Debug'); - $field_name = $this->entity->getEntityTypeId() . '.configurable_field'; - $field_storage = entity_load('field_storage_config', $field_name); + $field_storage_name = $this->entity->getEntityTypeId() . '.configurable_field'; + $field_storage = entity_load('field_storage_config', $field_storage_name); $field_storage->save(); $this->verifyPageCache($entity_path, 'MISS'); @@ -97,9 +97,9 @@ public function testEntityUri() { // Verify that after modifying a configurable field instance on the // entity, there is a cache miss. $this->pass("Test modification of entity's configurable field instance.", 'Debug'); - $field_instance_name = $this->entity->getEntityTypeId() . '.' . $this->entity->bundle() . '.configurable_field'; - $field_instance = entity_load('field_instance_config', $field_instance_name); - $field_instance->save(); + $field_name = $this->entity->getEntityTypeId() . '.' . $this->entity->bundle() . '.configurable_field'; + $field = entity_load('field_config', $field_name); + $field->save(); $this->verifyPageCache($entity_path, 'MISS'); // Verify a cache hit. diff --git a/core/modules/system/src/Tests/Entity/FieldSqlStorageTest.php b/core/modules/system/src/Tests/Entity/FieldSqlStorageTest.php index 924164c..85dae23 100644 --- a/core/modules/system/src/Tests/Entity/FieldSqlStorageTest.php +++ b/core/modules/system/src/Tests/Entity/FieldSqlStorageTest.php @@ -51,9 +51,9 @@ class FieldSqlStorageTest extends EntityUnitTestBase { /** * A field instance to use in this test class. * - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; /** * @var string @@ -82,11 +82,11 @@ protected function setUp() { 'cardinality' => $this->field_cardinality, )); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => $entity_type )); - $this->instance->save(); + $this->field->save(); $this->table = ContentEntityDatabaseStorage::_fieldTableName($this->fieldStorage); $this->revision_table = ContentEntityDatabaseStorage::_fieldRevisionTableName($this->fieldStorage); @@ -275,7 +275,7 @@ function testLongNames() { 'entity_type' => $entity_type, 'type' => 'test_field', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_names[$i], 'entity_type' => $entity_type, 'bundle' => $bundle, @@ -307,11 +307,11 @@ function testUpdateFieldSchemaWithData() { 'settings' => array('precision' => 5, 'scale' => 2), )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $entity_type, )); - $instance->save(); + $field->save(); $entity = entity_create($entity_type, array( 'id' => 0, 'revision_id' => 0, @@ -373,11 +373,11 @@ function testFieldUpdateIndexesWithData() { 'type' => 'text', )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => $entity_type, )); - $instance->save(); + $field->save(); $tables = array(ContentEntityDatabaseStorage::_fieldTableName($field_storage), ContentEntityDatabaseStorage::_fieldRevisionTableName($field_storage)); // Verify the indexes we will create do not exist yet. diff --git a/core/modules/system/src/Tests/Form/ArbitraryRebuildTest.php b/core/modules/system/src/Tests/Form/ArbitraryRebuildTest.php index 7949f0b..e625f42 100644 --- a/core/modules/system/src/Tests/Form/ArbitraryRebuildTest.php +++ b/core/modules/system/src/Tests/Form/ArbitraryRebuildTest.php @@ -34,7 +34,7 @@ protected function setUp() { 'cardinality' => -1, 'translatable' => FALSE, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'user', 'field_name' => 'test_multiple', 'bundle' => 'user', diff --git a/core/modules/system/src/Tests/Form/RebuildTest.php b/core/modules/system/src/Tests/Form/RebuildTest.php index dadf519..70755c3 100644 --- a/core/modules/system/src/Tests/Form/RebuildTest.php +++ b/core/modules/system/src/Tests/Form/RebuildTest.php @@ -71,7 +71,7 @@ function testPreserveFormActionAfterAJAX() { 'type' => 'text', 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => 'node', 'bundle' => 'page', diff --git a/core/modules/system/tests/modules/entity_test/entity_test.install b/core/modules/system/tests/modules/entity_test/entity_test.install index 4dfd09b..541191d 100644 --- a/core/modules/system/tests/modules/entity_test/entity_test.install +++ b/core/modules/system/tests/modules/entity_test/entity_test.install @@ -23,7 +23,7 @@ function entity_test_install() { 'type' => 'text', 'cardinality' => 1, ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => $entity_type, 'field_name' => 'field_test_text', 'bundle' => $entity_type, diff --git a/core/modules/system/tests/modules/entity_test/entity_test.module b/core/modules/system/tests/modules/entity_test/entity_test.module index c7db020..e0d0d1a 100644 --- a/core/modules/system/tests/modules/entity_test/entity_test.module +++ b/core/modules/system/tests/modules/entity_test/entity_test.module @@ -431,7 +431,7 @@ function entity_test_entity_test_mul_translation_delete(EntityInterface $transla * An array of default values, in the same format as the $default_value * property. * - * @see \Drupal\field\Entity\FieldInstanceConfig::$default_value + * @see \Drupal\field\Entity\FieldConfig::$default_value */ function entity_test_field_default_value(ContentEntityInterface $entity, FieldDefinitionInterface $definition) { return array(array('value' => $definition->getName() . '_' . $entity->language()->id)); diff --git a/core/modules/taxonomy/config/schema/taxonomy.schema.yml b/core/modules/taxonomy/config/schema/taxonomy.schema.yml index 40004c3..62d1cd7 100644 --- a/core/modules/taxonomy/config/schema/taxonomy.schema.yml +++ b/core/modules/taxonomy/config/schema/taxonomy.schema.yml @@ -55,7 +55,7 @@ field.taxonomy_term_reference.settings: type: integer value: 'Parent' -field.taxonomy_term_reference.instance_settings: +field.taxonomy_term_reference.field_settings: type: mapping label: 'Taxonomy term reference settings' mapping: diff --git a/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php b/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php index c58a631..5ec5ddd 100644 --- a/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php +++ b/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php @@ -152,7 +152,7 @@ public function settingsForm(array &$form, FormStateInterface $form_state, $has_ /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { return array(); } diff --git a/core/modules/taxonomy/src/Tests/LegacyTest.php b/core/modules/taxonomy/src/Tests/LegacyTest.php index 8a2ac68..faebc48 100644 --- a/core/modules/taxonomy/src/Tests/LegacyTest.php +++ b/core/modules/taxonomy/src/Tests/LegacyTest.php @@ -49,7 +49,7 @@ protected function setUp() { ), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'node', 'field_name' => $field_name, 'bundle' => 'article', diff --git a/core/modules/taxonomy/src/Tests/RssTest.php b/core/modules/taxonomy/src/Tests/RssTest.php index 5410e7f..8ad0403 100644 --- a/core/modules/taxonomy/src/Tests/RssTest.php +++ b/core/modules/taxonomy/src/Tests/RssTest.php @@ -47,7 +47,7 @@ protected function setUp() { ), )); $this->fieldStorage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => 'article', ))->save(); diff --git a/core/modules/taxonomy/src/Tests/TaxonomyImageTest.php b/core/modules/taxonomy/src/Tests/TaxonomyImageTest.php index c70ae8e..217bfd2 100644 --- a/core/modules/taxonomy/src/Tests/TaxonomyImageTest.php +++ b/core/modules/taxonomy/src/Tests/TaxonomyImageTest.php @@ -46,7 +46,7 @@ protected function setUp() { 'uri_scheme' => 'private', ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $name, 'entity_type' => $entity_type, 'bundle' => $this->vocabulary->id(), diff --git a/core/modules/taxonomy/src/Tests/TaxonomyTermReferenceItemTest.php b/core/modules/taxonomy/src/Tests/TaxonomyTermReferenceItemTest.php index 3db2290..87ee50f 100644 --- a/core/modules/taxonomy/src/Tests/TaxonomyTermReferenceItemTest.php +++ b/core/modules/taxonomy/src/Tests/TaxonomyTermReferenceItemTest.php @@ -59,7 +59,7 @@ protected function setUp() { ), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'field_test_taxonomy', 'bundle' => 'entity_test', diff --git a/core/modules/taxonomy/src/Tests/TermFieldMultipleVocabularyTest.php b/core/modules/taxonomy/src/Tests/TermFieldMultipleVocabularyTest.php index 4588587..c18c59c 100644 --- a/core/modules/taxonomy/src/Tests/TermFieldMultipleVocabularyTest.php +++ b/core/modules/taxonomy/src/Tests/TermFieldMultipleVocabularyTest.php @@ -55,7 +55,7 @@ protected function setUp() { ), ) ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => 'entity_test', 'bundle' => 'entity_test', diff --git a/core/modules/taxonomy/src/Tests/TermFieldTest.php b/core/modules/taxonomy/src/Tests/TermFieldTest.php index fa0f007..1a668f6 100644 --- a/core/modules/taxonomy/src/Tests/TermFieldTest.php +++ b/core/modules/taxonomy/src/Tests/TermFieldTest.php @@ -30,7 +30,6 @@ class TermFieldTest extends TaxonomyTestBase { */ public static $modules = array('entity_test', 'field_ui'); - protected $instance; protected $vocabulary; protected function setUp() { @@ -61,7 +60,7 @@ protected function setUp() { ) )); $this->field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $this->field_storage, 'bundle' => 'entity_test', ))->save(); @@ -134,7 +133,7 @@ function testTaxonomyTermFieldWidgets() { /** * No php error message on the field setting page for autocomplete widget. */ - function testTaxonomyTermFieldInstanceSettingsAutocompleteWidget() { + function testTaxonomyTermFieldSettingsAutocompleteWidget() { entity_get_form_display('entity_test', 'entity_test', 'default') ->setComponent($this->field_name, array( 'type' => 'taxonomy_autocomplete', diff --git a/core/modules/taxonomy/src/Tests/TermIndexTest.php b/core/modules/taxonomy/src/Tests/TermIndexTest.php index d1ec1b4..38afd05 100644 --- a/core/modules/taxonomy/src/Tests/TermIndexTest.php +++ b/core/modules/taxonomy/src/Tests/TermIndexTest.php @@ -42,7 +42,7 @@ protected function setUp() { ), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name_1, 'bundle' => 'article', 'entity_type' => 'node', @@ -73,7 +73,7 @@ protected function setUp() { ), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name_2, 'bundle' => 'article', 'entity_type' => 'node', diff --git a/core/modules/taxonomy/src/Tests/TermTest.php b/core/modules/taxonomy/src/Tests/TermTest.php index b2e9757..8cb21d4 100644 --- a/core/modules/taxonomy/src/Tests/TermTest.php +++ b/core/modules/taxonomy/src/Tests/TermTest.php @@ -42,12 +42,12 @@ protected function setUp() { ), ))->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_name' => $field_name, 'bundle' => 'article', 'entity_type' => 'node', )); - $this->instance->save(); + $this->field->save(); entity_get_form_display('node', 'article', 'default') ->setComponent($field_name, array( 'type' => 'options_select', @@ -162,7 +162,7 @@ function testTaxonomyNode() { $edit = array(); $edit['title[0][value]'] = $this->randomMachineName(); $edit['body[0][value]'] = $this->randomMachineName(); - $edit[$this->instance->getName() . '[]'] = $term1->id(); + $edit[$this->field->getName() . '[]'] = $term1->id(); $this->drupalPostForm('node/add/article', $edit, t('Save')); // Check that the term is displayed when the node is viewed. @@ -176,7 +176,7 @@ function testTaxonomyNode() { $this->assertText($term1->getName(), 'Term is displayed after saving the node with no changes.'); // Edit the node with a different term. - $edit[$this->instance->getName() . '[]'] = $term2->id(); + $edit[$this->field->getName() . '[]'] = $term2->id(); $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save')); $this->drupalGet('node/' . $node->id()); @@ -194,9 +194,9 @@ function testTaxonomyNode() { */ function testNodeTermCreationAndDeletion() { // Enable tags in the vocabulary. - $instance = $this->instance; - entity_get_form_display($instance->entity_type, $instance->bundle, 'default') - ->setComponent($instance->getName(), array( + $field = $this->field; + entity_get_form_display($field->entity_type, $field->bundle, 'default') + ->setComponent($field->getName(), array( 'type' => 'taxonomy_autocomplete', 'settings' => array( 'placeholder' => 'Start typing here.', @@ -215,7 +215,7 @@ function testNodeTermCreationAndDeletion() { $edit['body[0][value]'] = $this->randomMachineName(); // Insert the terms in a comma separated list. Vocabulary 1 is a // free-tagging field created by the default profile. - $edit[$instance->getName()] = Tags::implode($terms); + $edit[$field->getName()] = Tags::implode($terms); // Verify the placeholder is there. $this->drupalGet('node/add/article'); @@ -577,9 +577,9 @@ function testTaxonomyGetTermByName() { */ function testReSavingTags() { // Enable tags in the vocabulary. - $instance = $this->instance; - entity_get_form_display($instance->entity_type, $instance->bundle, 'default') - ->setComponent($instance->getName(), array( + $field = $this->field; + entity_get_form_display($field->entity_type, $field->bundle, 'default') + ->setComponent($field->getName(), array( 'type' => 'taxonomy_autocomplete', )) ->save(); @@ -589,7 +589,7 @@ function testReSavingTags() { $edit = array(); $edit['title[0][value]'] = $this->randomMachineName(8); $edit['body[0][value]'] = $this->randomMachineName(16); - $edit[$this->instance->getName()] = $term->getName(); + $edit[$this->field->getName()] = $term->getName(); $this->drupalPostForm('node/add/article', $edit, t('Save')); // Check that the term is displayed when editing and saving the node with no diff --git a/core/modules/taxonomy/src/Tests/TokenReplaceTest.php b/core/modules/taxonomy/src/Tests/TokenReplaceTest.php index 27d02ca..5c8c0f9 100644 --- a/core/modules/taxonomy/src/Tests/TokenReplaceTest.php +++ b/core/modules/taxonomy/src/Tests/TokenReplaceTest.php @@ -40,7 +40,7 @@ protected function setUp() { ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'bundle' => 'article', 'entity_type' => 'node', diff --git a/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldFilterTest.php b/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldFilterTest.php index c1d7065..604149b 100644 --- a/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldFilterTest.php +++ b/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldFilterTest.php @@ -76,7 +76,7 @@ function setUp() { )); $field->translatable = TRUE; $field->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => 'field_foo', 'entity_type' => 'taxonomy_term', 'label' => 'Foo', diff --git a/core/modules/taxonomy/src/Tests/Views/TaxonomyTestBase.php b/core/modules/taxonomy/src/Tests/Views/TaxonomyTestBase.php index 2950fe5..ca508ce 100644 --- a/core/modules/taxonomy/src/Tests/Views/TaxonomyTestBase.php +++ b/core/modules/taxonomy/src/Tests/Views/TaxonomyTestBase.php @@ -93,7 +93,7 @@ protected function mockStandardInstall() { ), ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => 'node', 'label' => 'Tags', diff --git a/core/modules/taxonomy/src/Tests/VocabularyCrudTest.php b/core/modules/taxonomy/src/Tests/VocabularyCrudTest.php index 03201ab..44741b2 100644 --- a/core/modules/taxonomy/src/Tests/VocabularyCrudTest.php +++ b/core/modules/taxonomy/src/Tests/VocabularyCrudTest.php @@ -7,7 +7,7 @@ namespace Drupal\taxonomy\Tests; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; /** * Tests loading, saving and deleting vocabularies. @@ -146,7 +146,7 @@ function testTaxonomyVocabularyChangeMachineName() { 'entity_type' => 'taxonomy_term', 'type' => 'test_field', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => 'field_test', 'entity_type' => 'taxonomy_term', 'bundle' => $this->vocabulary->id(), @@ -164,14 +164,14 @@ function testTaxonomyVocabularyChangeMachineName() { $this->assertTrue(isset($info[$new_name]), 'The new bundle name appears in entity_get_bundles().'); // Check that the field instance is still attached to the vocabulary. - $this->assertTrue(FieldInstanceConfig::loadByName('taxonomy_term', $new_name, 'field_test'), 'The bundle name was updated correctly.'); + $this->assertTrue(FieldConfig::loadByName('taxonomy_term', $new_name, 'field_test'), 'The bundle name was updated correctly.'); } /** * Test uninstall and reinstall of the taxonomy module. */ function testUninstallReinstall() { - // Fields and field instances attached to taxonomy term bundles should be + // Field storages and fields attached to taxonomy term bundles should be // removed when the module is uninstalled. $field_name = drupal_strtolower($this->randomMachineName() . '_field_name'); $storage_definition = array( @@ -181,25 +181,25 @@ function testUninstallReinstall() { 'cardinality' => 4 ); entity_create('field_storage_config', $storage_definition)->save(); - $instance_definition = array( + $field_definition = array( 'field_name' => $field_name, 'entity_type' => 'taxonomy_term', 'bundle' => $this->vocabulary->id(), 'label' => $this->randomMachineName() . '_label', ); - entity_create('field_instance_config', $instance_definition)->save(); + entity_create('field_config', $field_definition)->save(); require_once DRUPAL_ROOT . '/core/includes/install.inc'; $this->container->get('module_handler')->uninstall(array('taxonomy')); \Drupal::moduleHandler()->install(array('taxonomy')); - // Now create a vocabulary with the same name. All field instances + // Now create a vocabulary with the same name. All fields // connected to this vocabulary name should have been removed when the // module was uninstalled. Creating a new field with the same name and // an instance of this field on the same bundle name should be successful. $this->vocabulary->enforceIsNew(); $this->vocabulary->save(); entity_create('field_storage_config', $storage_definition)->save(); - entity_create('field_instance_config', $instance_definition)->save(); + entity_create('field_config', $field_definition)->save(); } } diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module index d58064d..1306161 100644 --- a/core/modules/taxonomy/taxonomy.module +++ b/core/modules/taxonomy/taxonomy.module @@ -126,7 +126,7 @@ function taxonomy_term_uri($term) { } /** - * Return nodes attached to a term across all field instances. + * Return nodes attached to a term across all fields. * * This function requires taxonomy module to be maintaining its own tables, * and will return an empty array if it is not. If using other field storage diff --git a/core/modules/telephone/src/Tests/TelephoneFieldTest.php b/core/modules/telephone/src/Tests/TelephoneFieldTest.php index f686517..d95f951 100644 --- a/core/modules/telephone/src/Tests/TelephoneFieldTest.php +++ b/core/modules/telephone/src/Tests/TelephoneFieldTest.php @@ -27,7 +27,7 @@ class TelephoneFieldTest extends WebTestBase { 'telephone' ); - protected $instance; + protected $field; protected $web_user; protected function setUp() { @@ -51,7 +51,7 @@ function testTelephoneField() { 'entity_type' => 'node', 'type' => 'telephone', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => 'field_telephone', 'label' => 'Telephone Number', 'entity_type' => 'node', diff --git a/core/modules/telephone/src/Tests/TelephoneItemTest.php b/core/modules/telephone/src/Tests/TelephoneItemTest.php index 8b25689..a1ce82c 100644 --- a/core/modules/telephone/src/Tests/TelephoneItemTest.php +++ b/core/modules/telephone/src/Tests/TelephoneItemTest.php @@ -34,7 +34,7 @@ protected function setUp() { 'entity_type' => 'entity_test', 'type' => 'telephone', ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => 'entity_test', 'field_name' => 'field_test', 'bundle' => 'entity_test', diff --git a/core/modules/text/config/schema/text.schema.yml b/core/modules/text/config/schema/text.schema.yml index dc54670..5f1be6d 100644 --- a/core/modules/text/config/schema/text.schema.yml +++ b/core/modules/text/config/schema/text.schema.yml @@ -16,7 +16,7 @@ field.text.settings: type: integer label: 'Maximum length' -field.text.instance_settings: +field.text.field_settings: type: mapping label: 'Text settings' mapping: @@ -44,7 +44,7 @@ field.text_long.settings: sequence: - type: string -field.text_long.instance_settings: +field.text_long.field_settings: type: mapping label: 'Long text settings' mapping: @@ -72,7 +72,7 @@ field.text_with_summary.settings: sequence: - type: string -field.text_with_summary.instance_settings: +field.text_with_summary.field_settings: type: mapping label: 'Text area with a summary' mapping: diff --git a/core/modules/text/src/Plugin/Field/FieldType/TextItem.php b/core/modules/text/src/Plugin/Field/FieldType/TextItem.php index 3b7285d..d61a050 100644 --- a/core/modules/text/src/Plugin/Field/FieldType/TextItem.php +++ b/core/modules/text/src/Plugin/Field/FieldType/TextItem.php @@ -98,7 +98,7 @@ public function settingsForm(array &$form, FormStateInterface $form_state, $has_ /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { $element = array(); $element['text_processing'] = array( diff --git a/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php b/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php index ca1769d..80e36c4 100644 --- a/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php +++ b/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php @@ -19,8 +19,8 @@ /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { - $settings = parent::defaultInstanceSettings(); + public static function defaultFieldSettings() { + $settings = parent::defaultFieldSettings(); $settings['text_processing'] = 0; return $settings; } diff --git a/core/modules/text/src/Plugin/Field/FieldType/TextLongItem.php b/core/modules/text/src/Plugin/Field/FieldType/TextLongItem.php index 1c74a41..3308ae2 100644 --- a/core/modules/text/src/Plugin/Field/FieldType/TextLongItem.php +++ b/core/modules/text/src/Plugin/Field/FieldType/TextLongItem.php @@ -49,7 +49,7 @@ public static function schema(FieldStorageDefinitionInterface $field_definition) /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { $element = array(); $element['text_processing'] = array( diff --git a/core/modules/text/src/Plugin/Field/FieldType/TextWithSummaryItem.php b/core/modules/text/src/Plugin/Field/FieldType/TextWithSummaryItem.php index 7ffcd64..9b0fffe 100644 --- a/core/modules/text/src/Plugin/Field/FieldType/TextWithSummaryItem.php +++ b/core/modules/text/src/Plugin/Field/FieldType/TextWithSummaryItem.php @@ -27,11 +27,11 @@ class TextWithSummaryItem extends TextItemBase { /** * {@inheritdoc} */ - public static function defaultInstanceSettings() { + public static function defaultFieldSettings() { return array( 'text_processing' => 1, 'display_summary' => 0, - ) + parent::defaultInstanceSettings(); + ) + parent::defaultFieldSettings(); } /** @@ -92,7 +92,7 @@ public function isEmpty() { /** * {@inheritdoc} */ - public function instanceSettingsForm(array $form, FormStateInterface $form_state) { + public function fieldSettingsForm(array $form, FormStateInterface $form_state) { $element = array(); $settings = $this->getSettings(); diff --git a/core/modules/text/src/Tests/Formatter/TextFormatterTest.php b/core/modules/text/src/Tests/Formatter/TextFormatterTest.php index 8b6cf67..d0382d4 100644 --- a/core/modules/text/src/Tests/Formatter/TextFormatterTest.php +++ b/core/modules/text/src/Tests/Formatter/TextFormatterTest.php @@ -61,7 +61,7 @@ protected function setUp() { 'type' => 'text', 'settings' => array(), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => $this->entityType, 'bundle' => $this->bundle, 'field_name' => 'processed_text', @@ -76,7 +76,7 @@ protected function setUp() { 'type' => 'text', 'settings' => array(), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'entity_type' => $this->entityType, 'bundle' => $this->bundle, 'field_name' => 'unprocessed_text', diff --git a/core/modules/text/src/Tests/Formatter/TextPlainUnitTest.php b/core/modules/text/src/Tests/Formatter/TextPlainUnitTest.php index f6f9150..bdea07d 100644 --- a/core/modules/text/src/Tests/Formatter/TextPlainUnitTest.php +++ b/core/modules/text/src/Tests/Formatter/TextPlainUnitTest.php @@ -53,14 +53,14 @@ class TextPlainUnitTest extends DrupalUnitTestBase { /** * @var array */ + protected $storage_settings; + + /** + * @var array + */ protected $field_settings; /** - * @var array - */ - protected $instance_settings; - - /** * @var string */ protected $formatter_type; @@ -76,9 +76,9 @@ class TextPlainUnitTest extends DrupalUnitTestBase { protected $fieldStorage; /** - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; /** * @var string @@ -111,8 +111,8 @@ protected function setUp() { $this->field_name = drupal_strtolower($this->randomMachineName()); $this->field_type = 'text_long'; - $this->field_settings = array(); - $this->instance_settings = array( + $this->storage_settings = array(); + $this->storage_settings = array( 'text_processing' => FALSE, ); @@ -123,17 +123,17 @@ protected function setUp() { 'name' => $this->field_name, 'entity_type' => $this->entity_type, 'type' => $this->field_type, - 'settings' => $this->field_settings, + 'settings' => $this->storage_settings, )); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => $this->bundle, 'label' => $this->randomMachineName(), - 'settings' => $this->instance_settings, + 'settings' => $this->storage_settings, )); - $this->instance->save(); + $this->field->save(); $this->view_mode = 'default'; $this->display = entity_get_display($this->entity_type, $this->bundle, $this->view_mode) diff --git a/core/modules/text/src/Tests/TextFieldTest.php b/core/modules/text/src/Tests/TextFieldTest.php index 330d9f8..dae13cc 100644 --- a/core/modules/text/src/Tests/TextFieldTest.php +++ b/core/modules/text/src/Tests/TextFieldTest.php @@ -53,7 +53,7 @@ function testTextFieldValidation() { ) )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', ))->save(); @@ -92,7 +92,7 @@ function _testTextfieldWidgets($field_type, $widget_type) { 'type' => $field_type )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', 'label' => $this->randomMachineName() . '_label', @@ -158,7 +158,7 @@ function _testTextfieldWidgetsFormatted($field_type, $widget_type) { 'type' => $field_type )); $field_storage->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_storage' => $field_storage, 'bundle' => 'entity_test', 'label' => $this->randomMachineName() . '_label', diff --git a/core/modules/text/src/Tests/TextWithSummaryItemTest.php b/core/modules/text/src/Tests/TextWithSummaryItemTest.php index 4a04d63..c792947 100644 --- a/core/modules/text/src/Tests/TextWithSummaryItemTest.php +++ b/core/modules/text/src/Tests/TextWithSummaryItemTest.php @@ -35,9 +35,9 @@ class TextWithSummaryItemTest extends FieldUnitTestBase { /** * Field instance. * - * @var \Drupal\field\Entity\FieldInstanceConfig + * @var \Drupal\field\Entity\FieldConfig */ - protected $instance; + protected $field; protected function setUp() { @@ -78,8 +78,8 @@ public function testCrudAndUpdate() { $this->assertNull($entity->summary_field->format); // Enable text processing. - $this->instance->settings['text_processing'] = 1; - $this->instance->save(); + $this->field->settings['text_processing'] = 1; + $this->field->save(); // Re-load the entity. $entity = entity_load($entity_type, $entity->id(), TRUE); @@ -112,14 +112,14 @@ protected function createField($entity_type) { ) )); $this->fieldStorage->save(); - $this->instance = entity_create('field_instance_config', array( + $this->field = entity_create('field_config', array( 'field_storage' => $this->fieldStorage, 'bundle' => $entity_type, 'settings' => array( 'text_processing' => 0, ) )); - $this->instance->save(); + $this->field->save(); } } diff --git a/core/modules/user/src/Tests/UserCreateTest.php b/core/modules/user/src/Tests/UserCreateTest.php index 4af2b40..d311b03 100644 --- a/core/modules/user/src/Tests/UserCreateTest.php +++ b/core/modules/user/src/Tests/UserCreateTest.php @@ -49,7 +49,7 @@ protected function testUserAdd() { ), ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $field_name, 'entity_type' => 'user', 'label' => 'Picture', diff --git a/core/modules/user/src/Tests/UserEntityReferenceTest.php b/core/modules/user/src/Tests/UserEntityReferenceTest.php index b0ab29d..025aedf 100644 --- a/core/modules/user/src/Tests/UserEntityReferenceTest.php +++ b/core/modules/user/src/Tests/UserEntityReferenceTest.php @@ -6,7 +6,7 @@ namespace Drupal\user\Tests; -use Drupal\field\Entity\FieldInstanceConfig; +use Drupal\field\Entity\FieldConfig; use Drupal\system\Tests\Entity\EntityUnitTestBase; /** @@ -51,14 +51,14 @@ protected function setUp() { )); $this->role2->save(); - entity_reference_create_instance('user', 'user', 'user_reference', 'User reference', 'user'); + entity_reference_create_field('user', 'user', 'user_reference', 'User reference', 'user'); } /** * Tests user selection by roles. */ function testUserSelectionByRole() { - $field_definition = FieldInstanceConfig::loadByName('user', 'user', 'user_reference'); + $field_definition = FieldConfig::loadByName('user', 'user', 'user_reference'); $field_definition->settings['handler_settings']['filter']['role'] = array( $this->role1->id() => $this->role1->id(), $this->role2->id() => 0, diff --git a/core/modules/user/src/Tests/UserRegistrationTest.php b/core/modules/user/src/Tests/UserRegistrationTest.php index cc025c8..b909868 100644 --- a/core/modules/user/src/Tests/UserRegistrationTest.php +++ b/core/modules/user/src/Tests/UserRegistrationTest.php @@ -199,13 +199,13 @@ function testRegistrationWithUserFields() { 'cardinality' => 1, )); $field_storage->save(); - $instance = entity_create('field_instance_config', array( + $field = entity_create('field_config', array( 'field_storage' => $field_storage, 'label' => 'Some user field', 'bundle' => 'user', 'required' => TRUE, )); - $instance->save(); + $field->save(); entity_get_form_display('user', 'user', 'default') ->setComponent('test_user_field', array('type' => 'test_field_widget')) ->save(); @@ -214,7 +214,7 @@ function testRegistrationWithUserFields() { // Check that the field does not appear on the registration form. $this->drupalGet('user/register'); - $this->assertNoText($instance->label(), 'The field does not appear on user registration form'); + $this->assertNoText($field->label(), 'The field does not appear on user registration form'); // Have the field appear on the registration form. entity_get_form_display('user', 'user', 'register') @@ -222,7 +222,7 @@ function testRegistrationWithUserFields() { ->save(); $this->drupalGet('user/register'); - $this->assertText($instance->label(), 'The field appears on user registration form'); + $this->assertText($field->label(), 'The field appears on user registration form'); // Check that validation errors are correctly reported. $edit = array(); @@ -231,11 +231,11 @@ function testRegistrationWithUserFields() { // Missing input in required field. $edit['test_user_field[0][value]'] = ''; $this->drupalPostForm(NULL, $edit, t('Create new account')); - $this->assertRaw(t('@name field is required.', array('@name' => $instance->label())), 'Field validation error was correctly reported.'); + $this->assertRaw(t('@name field is required.', array('@name' => $field->label())), 'Field validation error was correctly reported.'); // Invalid input. $edit['test_user_field[0][value]'] = '-1'; $this->drupalPostForm(NULL, $edit, t('Create new account')); - $this->assertRaw(t('%name does not accept the value -1.', array('%name' => $instance->label())), 'Field validation error was correctly reported.'); + $this->assertRaw(t('%name does not accept the value -1.', array('%name' => $field->label())), 'Field validation error was correctly reported.'); // Submit with valid data. $value = rand(1, 255); diff --git a/core/modules/views/src/Tests/DefaultViewsTest.php b/core/modules/views/src/Tests/DefaultViewsTest.php index c0feff5..fd1728a 100644 --- a/core/modules/views/src/Tests/DefaultViewsTest.php +++ b/core/modules/views/src/Tests/DefaultViewsTest.php @@ -70,7 +70,7 @@ protected function setUp() { ), ) ))->save(); - entity_create('field_instance_config', array( + entity_create('field_config', array( 'field_name' => $this->field_name, 'entity_type' => 'node', 'bundle' => 'page', diff --git a/core/modules/views/src/Tests/Wizard/TaggedWithTest.php b/core/modules/views/src/Tests/Wizard/TaggedWithTest.php index 4e5a29a..687a527 100644 --- a/core/modules/views/src/Tests/Wizard/TaggedWithTest.php +++ b/core/modules/views/src/Tests/Wizard/TaggedWithTest.php @@ -29,10 +29,10 @@ class TaggedWithTest extends WizardTestBase { protected $tag_vocabulary; + protected $tag_field_storage; + protected $tag_field; - protected $tag_instance; - protected function setUp() { parent::setUp(); @@ -68,11 +68,11 @@ protected function setUp() { // Create an instance of the tag field on one of the content types, and // configure it to display an autocomplete widget. - $this->tag_instance = array( + $this->tag_field = array( 'field_storage' => $this->tag_field_storage, 'bundle' => $this->node_type_with_tags->type, ); - entity_create('field_instance_config', $this->tag_instance)->save(); + entity_create('field_config', $this->tag_field)->save(); entity_get_form_display('node', $this->node_type_with_tags->type, 'default') ->setComponent('field_views_testing_tags', array( @@ -181,9 +181,9 @@ function testTaggedWithByNodeType() { // If we add an instance of the tagging field to the second node type, the // "tagged with" form element should not appear for it too. - $instance = $this->tag_instance; - $instance['bundle'] = $this->node_type_without_tags->type; - entity_create('field_instance_config', $instance)->save(); + $field = $this->tag_field; + $field['bundle'] = $this->node_type_without_tags->type; + entity_create('field_config', $field)->save(); entity_get_form_display('node', $this->node_type_without_tags->type, 'default') ->setComponent('field_views_testing_tags', array( 'type' => 'taxonomy_autocomplete', diff --git a/core/modules/views/views.module b/core/modules/views/views.module index 459ff0a..8e5ff47 100644 --- a/core/modules/views/views.module +++ b/core/modules/views/views.module @@ -22,7 +22,7 @@ use Drupal\Component\Plugin\Exception\PluginException; use Drupal\views\Entity\View; use Drupal\views\Views; -use Drupal\field\FieldInstanceConfigInterface; +use Drupal\field\FieldConfigInterface; /** * Implements hook_help(). @@ -496,25 +496,25 @@ function views_language_list($field = 'name', $flags = LanguageInterface::STATE_ } /** - * Implements hook_ENTITY_TYPE_create() for 'field_instance_config'. + * Implements hook_ENTITY_TYPE_create() for 'field_config'. */ -function views_field_instance_config_create(FieldInstanceConfigInterface $field_instance) { +function views_field_config_create(FieldConfigInterface $field_instance) { // @todo: Is this necessary? Use cache tags to only delete Views' cache data? \Drupal::cache('discovery')->deleteAll(); } /** - * Implements hook_ENTITY_TYPE_update() for 'field_instance_config'. + * Implements hook_ENTITY_TYPE_update() for 'field_config'. */ -function views_field_instance_config_update(FieldInstanceConfigInterface $field_instance) { +function views_field_config_update(FieldConfigInterface $field_instance) { Cache::deleteTags(array('extension' => 'views')); \Drupal::cache('render')->deleteAll(); } /** - * Implements hook_ENTITY_TYPE_delete() for 'field_instance_config'. + * Implements hook_ENTITY_TYPE_delete() for 'field_config'. */ -function views_field_instance_config_delete(FieldInstanceConfigInterface $field_instance) { +function views_field_config_delete(FieldConfigInterface $field_instance) { Cache::deleteTags(array('extension' => 'views')); \Drupal::cache('render')->deleteAll(); } diff --git a/core/profiles/standard/config/install/entity.form_display.node.article.default.yml b/core/profiles/standard/config/install/entity.form_display.node.article.default.yml index 359aa18..cf16fc4 100644 --- a/core/profiles/standard/config/install/entity.form_display.node.article.default.yml +++ b/core/profiles/standard/config/install/entity.form_display.node.article.default.yml @@ -39,10 +39,10 @@ hidden: { } status: true dependencies: entity: - - field.instance.node.article.body - - field.instance.node.article.comment - - field.instance.node.article.field_image - - field.instance.node.article.field_tags + - field.field.node.article.body + - field.field.node.article.comment + - field.field.node.article.field_image + - field.field.node.article.field_tags - node.type.article module: - comment diff --git a/core/profiles/standard/config/install/entity.view_display.node.article.default.yml b/core/profiles/standard/config/install/entity.view_display.node.article.default.yml index 1599151..a0da43b 100644 --- a/core/profiles/standard/config/install/entity.view_display.node.article.default.yml +++ b/core/profiles/standard/config/install/entity.view_display.node.article.default.yml @@ -26,9 +26,9 @@ content: third_party_settings: { } dependencies: entity: - - field.instance.node.article.body - - field.instance.node.article.field_image - - field.instance.node.article.field_tags + - field.field.node.article.body + - field.field.node.article.field_image + - field.field.node.article.field_tags - node.type.article module: - comment diff --git a/core/profiles/standard/config/install/entity.view_display.node.article.teaser.yml b/core/profiles/standard/config/install/entity.view_display.node.article.teaser.yml index d22ab13..22dcce7 100644 --- a/core/profiles/standard/config/install/entity.view_display.node.article.teaser.yml +++ b/core/profiles/standard/config/install/entity.view_display.node.article.teaser.yml @@ -28,9 +28,9 @@ content: dependencies: entity: - entity.view_mode.node.teaser - - field.instance.node.article.body - - field.instance.node.article.field_image - - field.instance.node.article.field_tags + - field.field.node.article.body + - field.field.node.article.field_image + - field.field.node.article.field_tags - node.type.article module: - image diff --git a/core/profiles/standard/config/install/field.instance.node.article.field_image.yml b/core/profiles/standard/config/install/field.field.node.article.field_image.yml similarity index 100% rename from core/profiles/standard/config/install/field.instance.node.article.field_image.yml rename to core/profiles/standard/config/install/field.field.node.article.field_image.yml diff --git a/core/profiles/standard/config/install/field.instance.node.article.field_tags.yml b/core/profiles/standard/config/install/field.field.node.article.field_tags.yml similarity index 100% rename from core/profiles/standard/config/install/field.instance.node.article.field_tags.yml rename to core/profiles/standard/config/install/field.field.node.article.field_tags.yml diff --git a/core/profiles/standard/config/install/field.instance.user.user.user_picture.yml b/core/profiles/standard/config/install/field.field.user.user.user_picture.yml similarity index 100% rename from core/profiles/standard/config/install/field.instance.user.user.user_picture.yml rename to core/profiles/standard/config/install/field.field.user.user.user_picture.yml diff --git a/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php b/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php index ca33a5f..2263126 100644 --- a/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php +++ b/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php @@ -63,7 +63,7 @@ protected function getConfigData() { 'uuid' => $uuid->generate(), ), // Config entity which requires another config entity. - 'field.instance.node.article.body' => array( + 'field.field.node.article.body' => array( 'id' => 'node.article.body', 'uuid' => $uuid->generate(), 'dependencies' => array( @@ -141,7 +141,7 @@ public function testCreateChangelistNoChange() { public function testCreateChangelistCreate() { $target_data = $source_data = $this->getConfigData(); unset($target_data['field.storage.node.body']); - unset($target_data['field.instance.node.article.body']); + unset($target_data['field.field.node.article.body']); unset($target_data['views.view.test_view']); $this->sourceStorage->expects($this->once()) @@ -170,7 +170,7 @@ public function testCreateChangelistCreate() { $expected = array( 'field.storage.node.body', 'views.view.test_view', - 'field.instance.node.article.body', + 'field.field.node.article.body', ); $this->assertEquals($expected, $this->storageComparer->getChangelist('create')); $this->assertEmpty($this->storageComparer->getChangelist('delete')); @@ -183,7 +183,7 @@ public function testCreateChangelistCreate() { public function testCreateChangelistDelete() { $target_data = $source_data = $this->getConfigData(); unset($source_data['field.storage.node.body']); - unset($source_data['field.instance.node.article.body']); + unset($source_data['field.field.node.article.body']); unset($source_data['views.view.test_view']); $this->sourceStorage->expects($this->once()) @@ -210,7 +210,7 @@ public function testCreateChangelistDelete() { $this->storageComparer->createChangelist(); $expected = array( - 'field.instance.node.article.body', + 'field.field.node.article.body', 'views.view.test_view', 'field.storage.node.body', ); @@ -225,7 +225,7 @@ public function testCreateChangelistDelete() { public function testCreateChangelistUpdate() { $target_data = $source_data = $this->getConfigData(); $source_data['system.site']['title'] = 'Drupal New!'; - $source_data['field.instance.node.article.body']['new_config_key'] = 'new data'; + $source_data['field.field.node.article.body']['new_config_key'] = 'new data'; $source_data['field.storage.node.body']['new_config_key'] = 'new data'; $this->sourceStorage->expects($this->once()) @@ -254,7 +254,7 @@ public function testCreateChangelistUpdate() { $expected = array( 'field.storage.node.body', 'system.site', - 'field.instance.node.article.body', + 'field.field.node.article.body', ); $this->assertEquals($expected, $this->storageComparer->getChangelist('update')); $this->assertEmpty($this->storageComparer->getChangelist('create')); diff --git a/core/tests/Drupal/Tests/Core/Entity/BaseFieldDefinitionTest.php b/core/tests/Drupal/Tests/Core/Entity/BaseFieldDefinitionTest.php index 4387790..d7e85ef 100644 --- a/core/tests/Drupal/Tests/Core/Entity/BaseFieldDefinitionTest.php +++ b/core/tests/Drupal/Tests/Core/Entity/BaseFieldDefinitionTest.php @@ -47,7 +47,7 @@ protected function setUp() { 'settings' => array( 'some_setting' => 'value 1' ), - 'instance_settings' => array( + 'field_settings' => array( 'some_instance_setting' => 'value 2', ), ); @@ -64,9 +64,9 @@ protected function setUp() { ->with($this->fieldType) ->will($this->returnValue($this->fieldTypeDefinition['settings'])); $field_type_manager->expects($this->any()) - ->method('getDefaultInstanceSettings') + ->method('getDefaultFieldSettings') ->with($this->fieldType) - ->will($this->returnValue($this->fieldTypeDefinition['instance_settings'])); + ->will($this->returnValue($this->fieldTypeDefinition['field_settings'])); $container = new ContainerBuilder(); $container->set('plugin.manager.field.field_type', $field_type_manager); @@ -120,7 +120,7 @@ public function testFieldSettings() { $value = $this->randomMachineName(); $definition->setSetting($setting, $value); $this->assertEquals($value, $definition->getSetting($setting)); - $default_settings = $this->fieldTypeDefinition['settings'] + $this->fieldTypeDefinition['instance_settings']; + $default_settings = $this->fieldTypeDefinition['settings'] + $this->fieldTypeDefinition['field_settings']; $this->assertEquals(array($setting => $value) + $default_settings, $definition->getSettings()); } @@ -129,7 +129,7 @@ public function testFieldSettings() { */ public function testDefaultFieldSettings() { $definition = BaseFieldDefinition::create($this->fieldType); - $expected_settings = $this->fieldTypeDefinition['settings'] + $this->fieldTypeDefinition['instance_settings']; + $expected_settings = $this->fieldTypeDefinition['settings'] + $this->fieldTypeDefinition['field_settings']; $this->assertEquals($expected_settings, $definition->getSettings()); foreach ($expected_settings as $setting => $value) { $this->assertEquals($value, $definition->getSetting($setting)); diff --git a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php index 39f8d76..a04739c 100644 --- a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php +++ b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php @@ -159,7 +159,7 @@ protected function setUp() { ->method('getDefaultSettings') ->will($this->returnValue(array())); $this->fieldTypePluginManager->expects($this->any()) - ->method('getDefaultInstanceSettings') + ->method('getDefaultFieldSettings') ->will($this->returnValue(array())); $container = new ContainerBuilder(); diff --git a/core/tests/Drupal/Tests/Core/Entity/ContentEntityDatabaseStorageTest.php b/core/tests/Drupal/Tests/Core/Entity/ContentEntityDatabaseStorageTest.php index fde0d84..a8c8022 100644 --- a/core/tests/Drupal/Tests/Core/Entity/ContentEntityDatabaseStorageTest.php +++ b/core/tests/Drupal/Tests/Core/Entity/ContentEntityDatabaseStorageTest.php @@ -970,7 +970,7 @@ public function testFieldSqlSchemaForEntityWithStringIdentifier() { ->method('getDefaultSettings') ->will($this->returnValue(array())); $field_type_manager->expects($this->exactly(2)) - ->method('getDefaultInstanceSettings') + ->method('getDefaultFieldSettings') ->will($this->returnValue(array())); $this->fieldDefinitions['id'] = BaseFieldDefinition::create('string')