diff --git a/core/lib/Drupal/Core/Entity/Field/FieldTypePluginManager.php b/core/lib/Drupal/Core/Entity/Field/FieldTypePluginManager.php index a8c1ef5dd1de6653c56014f1021d7c4ea825afb7..0be215e2c4fe652e69426850dc11e4a092a214fe 100644 --- a/core/lib/Drupal/Core/Entity/Field/FieldTypePluginManager.php +++ b/core/lib/Drupal/Core/Entity/Field/FieldTypePluginManager.php @@ -54,4 +54,34 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac $this->discovery = new LegacyFieldTypeDiscoveryDecorator($this->discovery, $module_handler); } + /** + * Returns the default field-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. + */ + public function getDefaultSettings($type) { + $info = $this->getDefinition($type); + return isset($info['settings']) ? $info['settings'] : array(); + } + + /** + * 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) { + $info = $this->getDefinition($type); + return isset($info['instance_settings']) ? $info['instance_settings'] : array(); + } + } diff --git a/core/modules/edit/edit.services.yml b/core/modules/edit/edit.services.yml index eb8677e12556711c308175606b86e2ab0e6bb3f1..646878ec5e5a8d520c5a074c1d6d85285519e898 100644 --- a/core/modules/edit/edit.services.yml +++ b/core/modules/edit/edit.services.yml @@ -12,7 +12,7 @@ services: - { name: access_check } edit.editor.selector: class: Drupal\edit\EditorSelector - arguments: ['@plugin.manager.edit.editor'] + arguments: ['@plugin.manager.edit.editor', '@plugin.manager.field.formatter'] edit.metadata.generator: class: Drupal\edit\MetadataGenerator arguments: ['@access_check.edit.entity_field', '@edit.editor.selector', '@plugin.manager.edit.editor'] diff --git a/core/modules/edit/lib/Drupal/edit/EditorSelector.php b/core/modules/edit/lib/Drupal/edit/EditorSelector.php index 2636f381b615ee8e4ed8dadac69a4d16fe8f1967..b59a68c95f24697b6fdddfa2dee030681f9ab376 100644 --- a/core/modules/edit/lib/Drupal/edit/EditorSelector.php +++ b/core/modules/edit/lib/Drupal/edit/EditorSelector.php @@ -10,6 +10,7 @@ use Drupal\Component\Plugin\PluginManagerInterface; use Drupal\Component\Utility\NestedArray; use Drupal\Core\Entity\Field\FieldDefinitionInterface; +use Drupal\field\Plugin\Type\Formatter\FormatterPluginManager; /** * Selects an in-place editor (an Editor plugin) for a field. @@ -23,6 +24,13 @@ class EditorSelector implements EditorSelectorInterface { */ protected $editorManager; + /** + * The manager for formatter plugins. + * + * @var \Drupal\field\Plugin\Type\Formatter\FormatterPluginManager. + */ + protected $formatterManager; + /** * A list of alternative editor plugin IDs, keyed by editor plugin ID. * @@ -35,9 +43,12 @@ class EditorSelector implements EditorSelectorInterface { * * @param \Drupal\Component\Plugin\PluginManagerInterface * The manager for editor plugins. + * @param \Drupal\field\Plugin\Type\Formatter\FormatterPluginManager + * The manager for formatter plugins. */ - public function __construct(PluginManagerInterface $editor_manager) { + public function __construct(PluginManagerInterface $editor_manager, FormatterPluginManager $formatter_manager) { $this->editorManager = $editor_manager; + $this->formatterManager = $formatter_manager; } /** @@ -62,7 +73,7 @@ public function getEditor($formatter_type, FieldDefinitionInterface $field_defin // 'direct' editor. If the formatter doesn't specify, fall back to the // 'form' editor, since that can work for any field. Formatter definitions // can use 'disabled' to explicitly opt out of in-place editing. - $formatter_info = field_info_formatter_types($formatter_type); + $formatter_info = $this->formatterManager->getDefinition($formatter_type); $editor_id = $formatter_info['edit']['editor']; if ($editor_id === 'disabled') { return; diff --git a/core/modules/edit/lib/Drupal/edit/Tests/EditorSelectionTest.php b/core/modules/edit/lib/Drupal/edit/Tests/EditorSelectionTest.php index c1982c5b6f4ffbbc7817e455392421b7073ca846..c04733a8b938553be39c8eaca7d4a598fc20ed45 100644 --- a/core/modules/edit/lib/Drupal/edit/Tests/EditorSelectionTest.php +++ b/core/modules/edit/lib/Drupal/edit/Tests/EditorSelectionTest.php @@ -41,7 +41,7 @@ function setUp() { parent::setUp(); $this->editorManager = $this->container->get('plugin.manager.edit.editor'); - $this->editorSelector = new EditorSelector($this->editorManager); + $this->editorSelector = new EditorSelector($this->editorManager, $this->container->get('plugin.manager.field.formatter')); } /** diff --git a/core/modules/edit/lib/Drupal/edit/Tests/MetadataGeneratorTest.php b/core/modules/edit/lib/Drupal/edit/Tests/MetadataGeneratorTest.php index a9309884102b889a1e378f88b565e551e594a495..5860065abb7acb8b8b404eb975fa07f8a2e7fdaf 100644 --- a/core/modules/edit/lib/Drupal/edit/Tests/MetadataGeneratorTest.php +++ b/core/modules/edit/lib/Drupal/edit/Tests/MetadataGeneratorTest.php @@ -59,7 +59,7 @@ function setUp() { $this->editorManager = $this->container->get('plugin.manager.edit.editor'); $this->accessChecker = new MockEditEntityFieldAccessCheck(); - $this->editorSelector = new EditorSelector($this->editorManager); + $this->editorSelector = new EditorSelector($this->editorManager, $this->container->get('plugin.manager.field.formatter')); $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager); } diff --git a/core/modules/editor/lib/Drupal/editor/Tests/EditIntegrationTest.php b/core/modules/editor/lib/Drupal/editor/Tests/EditIntegrationTest.php index d2ec5e6abd98d2d8549976a2906fdf92a637b67d..463964c161715c1bcbf28cde9ef973dd7b625b78 100644 --- a/core/modules/editor/lib/Drupal/editor/Tests/EditIntegrationTest.php +++ b/core/modules/editor/lib/Drupal/editor/Tests/EditIntegrationTest.php @@ -124,7 +124,7 @@ protected function getSelectedEditor($items, $field_name, $view_mode = 'default' */ function testEditorSelection() { $this->editorManager = new InPlaceEditorManager($this->container->get('container.namespaces')); - $this->editorSelector = new EditorSelector($this->editorManager); + $this->editorSelector = new EditorSelector($this->editorManager, $this->container->get('plugin.manager.field.formatter')); // Pretend there is an entity with these items for the field. $items = array(array('value' => 'Hello, world!', 'format' => 'filtered_html')); @@ -149,7 +149,7 @@ function testEditorSelection() { function testMetadata() { $this->editorManager = new InPlaceEditorManager($this->container->get('container.namespaces')); $this->accessChecker = new MockEditEntityFieldAccessCheck(); - $this->editorSelector = new EditorSelector($this->editorManager); + $this->editorSelector = new EditorSelector($this->editorManager, $this->container->get('plugin.manager.field.formatter')); $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager); // Create an entity with values for the field. diff --git a/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php b/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php index 6a0ddc55d98c9449e26c9d2a5c87270259483fc5..fdeaa1bd8d03cb3a5505031d0955ccee9c70a5bf 100644 --- a/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php +++ b/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php @@ -155,21 +155,21 @@ public function testFieldComponent() { // Check that providing no options results in default values being used. $display->setComponent($field_name); - $field_type_info = field_info_field_types($field->type); + $field_type_info = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($field->type); $default_formatter = $field_type_info['default_formatter']; - $default_settings = field_info_formatter_settings($default_formatter); + $formatter_settings = \Drupal::service('plugin.manager.field.formatter')->getDefinition($default_formatter); $expected = array( 'weight' => 0, 'label' => 'above', 'type' => $default_formatter, - 'settings' => $default_settings, + 'settings' => $formatter_settings['settings'], ); $this->assertEqual($display->getComponent($field_name), $expected); // Check that the getFormatter() method returns the correct formatter plugin. $formatter = $display->getRenderer($field_name); $this->assertEqual($formatter->getPluginId(), $default_formatter); - $this->assertEqual($formatter->getSettings(), $default_settings); + $this->assertEqual($formatter->getSettings(), $formatter_settings['settings']); // Check that the formatter is statically persisted, by assigning an // arbitrary property and reading it back. diff --git a/core/modules/entity/lib/Drupal/entity/Tests/EntityFormDisplayTest.php b/core/modules/entity/lib/Drupal/entity/Tests/EntityFormDisplayTest.php index a74c96699a7f162a14ac9e483ec45e11c81bd564..8d7df462a65f58bacf4e511f4c28bb48f37346e0 100644 --- a/core/modules/entity/lib/Drupal/entity/Tests/EntityFormDisplayTest.php +++ b/core/modules/entity/lib/Drupal/entity/Tests/EntityFormDisplayTest.php @@ -77,20 +77,20 @@ public function testFieldComponent() { // Check that providing no options results in default values being used. $form_display->setComponent($field_name); - $field_type_info = field_info_field_types($field->type); + $field_type_info = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($field->type); $default_widget = $field_type_info['default_widget']; - $default_settings = field_info_widget_settings($default_widget); + $widget_settings = \Drupal::service('plugin.manager.field.widget')->getDefinition($default_widget); $expected = array( 'weight' => 0, 'type' => $default_widget, - 'settings' => $default_settings, + 'settings' => $widget_settings['settings'], ); $this->assertEqual($form_display->getComponent($field_name), $expected); // Check that the getWidget() method returns the correct widget plugin. $widget = $form_display->getRenderer($field_name); $this->assertEqual($widget->getPluginId(), $default_widget); - $this->assertEqual($widget->getSettings(), $default_settings); + $this->assertEqual($widget->getSettings(), $widget_settings['settings']); // Check that the widget is statically persisted, by assigning an // arbitrary property and reading it back. diff --git a/core/modules/entity_reference/entity_reference.module b/core/modules/entity_reference/entity_reference.module index a13d5cddb4aaffc22f171badb3ddc53a2a04ae96..52bb75f5de3e61dd6a18950a0ecbedc5c0efa387 100644 --- a/core/modules/entity_reference/entity_reference.module +++ b/core/modules/entity_reference/entity_reference.module @@ -389,7 +389,7 @@ function entity_reference_query_entity_reference_alter(AlterableInterface $query */ function entity_reference_create_instance($entity_type, $bundle, $field_name, $field_label, $target_entity_type, $selection_handler = 'default', $selection_handler_settings = array()) { // If a field type we know should exist isn't found, clear the field cache. - if (!field_info_field_types('entity_reference')) { + if (!\Drupal::service('plugin.manager.entity.field.field_type')->getDefinition('entity_reference')) { field_cache_clear(); } diff --git a/core/modules/field/field.info.inc b/core/modules/field/field.info.inc index 0ef47abf94cac9bfa02f7bd43dba3356ef56d671..824d74e7b66c04610b2ffce94326620b6be1b835 100644 --- a/core/modules/field/field.info.inc +++ b/core/modules/field/field.info.inc @@ -130,7 +130,7 @@ function _field_info_collate_types_reset() { function field_behaviors_widget($op, $instance) { $info = array(); if ($component = entity_get_form_display($instance['entity_type'], $instance['bundle'], 'default')->getComponent($instance['field_name'])) { - $info = field_info_widget_types($component['type']); + $info = \Drupal::service('plugin.manager.field.widget')->getDefinition($component['type']); } return isset($info[$op]) ? $info[$op] : FIELD_BEHAVIOR_DEFAULT; } @@ -503,13 +503,11 @@ function field_info_extra_fields($entity_type, $bundle, $context) { * The field type's default settings, or an empty array if type or settings * are not defined. * - * @deprecated as of Drupal 8.0. Use the 'settings' property in the definition - * array returned by - * Drupal::service('plugin.manager.entity.field.field_type')->getDefinition() + * @deprecated as of Drupal 8.0. Use + * Drupal::service('plugin.manager.entity.field.field_type')->getDefaultSettings() */ function field_info_field_settings($type) { - $info = field_info_field_types($type); - return isset($info['settings']) ? $info['settings'] : array(); + return \Drupal::service('plugin.manager.entity.field.field_type')->getDefaultSettings($type); } /** @@ -522,13 +520,11 @@ function field_info_field_settings($type) { * The field type's default instance settings, or an empty array if type or * settings are not defined. * - * @deprecated as of Drupal 8.0. Use the 'instance_settings' property in the - * definition array returned by - * Drupal::service('plugin.manager.entity.field.field_type')->getDefinition() + * @deprecated as of Drupal 8.0. Use + * Drupal::service('plugin.manager.entity.field.field_type')->getDefaultInstanceSettings() */ function field_info_instance_settings($type) { - $info = field_info_field_types($type); - return isset($info['instance_settings']) ? $info['instance_settings'] : array(); + return \Drupal::service('plugin.manager.entity.field.field_type')->getDefaultInstanceSettings($type); } /** @@ -542,13 +538,11 @@ function field_info_instance_settings($type) { * hook_field_widget_info(), or an empty array if type or settings are * undefined. * - * @deprecated as of Drupal 8.0. Use the 'settings' property in the definition - * array returned by - * Drupal::service('plugin.manager.field.widget')->getDefinition() + * @deprecated as of Drupal 8.0. Use + * Drupal::service('plugin.manager.field.widget')->getDefaultSettings() */ function field_info_widget_settings($type) { - $info = field_info_widget_types($type); - return isset($info['settings']) ? $info['settings'] : array(); + return \Drupal::service('plugin.manager.field.widget')->getDefaultSettings($type); } /** @@ -562,13 +556,11 @@ function field_info_widget_settings($type) { * hook_field_formatter_info(), or an empty array if type or settings are * undefined. * - * @deprecated as of Drupal 8.0. Use the 'settings' property in the definition - * array returned by - * Drupal::service('plugin.manager.field.formatter')->getDefinition() + * @deprecated as of Drupal 8.0. Use + * Drupal::service('plugin.manager.field.formatter')->getDefaultSettings() */ function field_info_formatter_settings($type) { - $info = field_info_formatter_types($type); - return isset($info['settings']) ? $info['settings'] : array(); + return \Drupal::service('plugin.manager.field.formatter')->getDefaultSettings($type); } /** diff --git a/core/modules/field/field.module b/core/modules/field/field.module index ffbd069904fd0645c7be1cde676b87eadd29e151..e1ed6ed99b8d8c29f353c8bb5b5563225a80278f 100644 --- a/core/modules/field/field.module +++ b/core/modules/field/field.module @@ -328,7 +328,7 @@ function _field_generate_entity_field_definition(FieldInterface $field, FieldIns */ function field_field_widget_info_alter(&$info) { // Add the Hidden widget to all field types. - $info['hidden']['field_types'] = array_keys(field_info_field_types()); + $info['hidden']['field_types'] = array_keys(\Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions()); } /** diff --git a/core/modules/field/field.services.yml b/core/modules/field/field.services.yml index 6b8c4b8a07b9fa2415575fdce79dba401b837806..c6ef5da277a44ef5f3b264d2e0c8d549e30f3a7c 100644 --- a/core/modules/field/field.services.yml +++ b/core/modules/field/field.services.yml @@ -1,13 +1,13 @@ services: plugin.manager.field.widget: class: Drupal\field\Plugin\Type\Widget\WidgetPluginManager - arguments: ['@container.namespaces', '@cache.field', '@module_handler', '@language_manager'] + arguments: ['@container.namespaces', '@cache.field', '@module_handler', '@language_manager', '@plugin.manager.entity.field.field_type'] plugin.manager.field.formatter: class: Drupal\field\Plugin\Type\Formatter\FormatterPluginManager - arguments: ['@container.namespaces', '@cache.field', '@module_handler', '@language_manager'] + arguments: ['@container.namespaces', '@cache.field', '@module_handler', '@language_manager', '@plugin.manager.entity.field.field_type'] field.info: class: Drupal\field\FieldInfo - arguments: ['@cache.field', '@config.factory', '@module_handler'] + arguments: ['@cache.field', '@config.factory', '@module_handler', '@plugin.manager.entity.field.field_type'] cache.field: class: Drupal\Core\Cache\CacheBackendInterface tags: diff --git a/core/modules/field/field.views.inc b/core/modules/field/field.views.inc index 90f539d4e3dae28653d6b9c97c461d5c711b64bd..e5dea3ba45ad7091fcff9034ed322d6f9de399c8 100644 --- a/core/modules/field/field.views.inc +++ b/core/modules/field/field.views.inc @@ -90,7 +90,7 @@ function field_views_field_label($field_name) { * Default views data implementation for a field. */ function field_views_field_default_views_data($field) { - $field_types = field_info_field_types(); + $field_types = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions(); // Check the field module is available. if (!isset($field_types[$field['type']])) { diff --git a/core/modules/field/lib/Drupal/field/FieldInfo.php b/core/modules/field/lib/Drupal/field/FieldInfo.php index e7e46b955ffe824e53eced58485c42560c2576a3..2639c25bb7430116c73e4c91547c0f7a84b83db9 100644 --- a/core/modules/field/lib/Drupal/field/FieldInfo.php +++ b/core/modules/field/lib/Drupal/field/FieldInfo.php @@ -9,6 +9,7 @@ use Drupal\Core\Cache\CacheBackendInterface; use Drupal\Core\Config\ConfigFactory; +use Drupal\Core\Entity\Field\FieldTypePluginManager; use Drupal\Core\Extension\ModuleHandlerInterface; /** @@ -44,6 +45,13 @@ class FieldInfo { */ protected $moduleHandler; + /** + * The field type manager to define field. + * + * @var \Drupal\Core\Entity\Field\FieldTypePluginManager + */ + protected $fieldTypeManager; + /** * The config factory. * @@ -123,11 +131,14 @@ class FieldInfo { * The configuration factory object to use. * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler * The module handler class to use for invoking hooks. + * @param \Drupal\Core\Entity\Field\FieldTypePluginManager $field_type_manager + * The 'field type' plugin manager. */ - public function __construct(CacheBackendInterface $cache_backend, ConfigFactory $config, ModuleHandlerInterface $module_handler) { + public function __construct(CacheBackendInterface $cache_backend, ConfigFactory $config, ModuleHandlerInterface $module_handler, FieldTypePluginManager $field_type_manager) { $this->cacheBackend = $cache_backend; $this->moduleHandler = $module_handler; $this->config = $config; + $this->fieldTypeManager = $field_type_manager; } /** @@ -553,7 +564,7 @@ public function getBundleExtraFields($entity_type, $bundle) { */ public function prepareField($field) { // Make sure all expected field settings are present. - $field['settings'] += field_info_field_settings($field['type']); + $field['settings'] += $this->fieldTypeManager->getDefaultSettings($field['type']); $field['storage']['settings'] += field_info_storage_settings($field['storage']['type']); return $field; @@ -572,7 +583,7 @@ public function prepareField($field) { */ public function prepareInstance($instance, $field_type) { // Make sure all expected instance settings are present. - $instance['settings'] += field_info_instance_settings($field_type); + $instance['settings'] += $this->fieldTypeManager->getDefaultInstanceSettings($field_type); // Set a default value for the instance. if (field_behaviors_widget('default value', $instance) == FIELD_BEHAVIOR_DEFAULT && !isset($instance['default_value'])) { diff --git a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/Field.php b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/Field.php index 46023992a9a7c23a248122dc4e6182cb8e766af9..bccc64b9ace21f1f94ec9d40b3d9175d4fe202d6 100644 --- a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/Field.php +++ b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/Field.php @@ -352,7 +352,7 @@ protected function saveNew() { } // Check that the field type is known. - $field_type = field_info_field_types($this->type); + $field_type = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($this->type); if (!$field_type) { throw new FieldException(format_string('Attempt to create a field of unknown type %type.', array('%type' => $this->type))); } @@ -579,7 +579,7 @@ public function getFieldSettings() { // 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 = field_info_field_types($this->type); + $field_type_info = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($this->type); $settings = $field_type_info['instance_settings'] + $this->settings + $field_type_info['settings']; return $settings; @@ -590,7 +590,7 @@ public function getFieldSettings() { */ public function getFieldSetting($setting_name) { // @todo See getFieldSettings() about potentially statically caching this. - $field_type_info = field_info_field_types($this->type); + $field_type_info = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($this->type); // We assume here that consecutive array_key_exists() is more efficient than // calling getFieldSettings() when all we need is a single setting. diff --git a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php index cbfb63670a1af5c7fbd01026c3bf84cf7dffadcd..5fbfe65e0dff55a2421b17efb7926f271011671e 100644 --- a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php +++ b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php @@ -425,7 +425,7 @@ protected function saveUpdated() { * Prepares the instance definition for saving. */ protected function prepareSave() { - $field_type_info = field_info_field_types($this->field->type); + $field_type_info = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($this->field->type); // Set the default instance settings. $this->settings += $field_type_info['instance_settings']; diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterPluginManager.php b/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterPluginManager.php index 5747fd1783d55407204077d71f3cd39a6b5ed512..3b5c813e018c848185d7906eb3fa7cb87f65a771 100644 --- a/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterPluginManager.php +++ b/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterPluginManager.php @@ -10,6 +10,7 @@ use Drupal\Component\Plugin\PluginManagerBase; use Drupal\Component\Plugin\Factory\DefaultFactory; use Drupal\Core\Cache\CacheBackendInterface; +use Drupal\Core\Entity\Field\FieldTypePluginManager; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\Language\LanguageManager; use Drupal\Core\Plugin\DefaultPluginManager; @@ -30,6 +31,13 @@ class FormatterPluginManager extends DefaultPluginManager { */ protected $formatterOptions; + /** + * The field type manager to define field. + * + * @var \Drupal\Core\Entity\Field\FieldTypePluginManager + */ + protected $fieldTypeManager; + /** * Constructs a FormatterPluginManager object. * @@ -42,14 +50,17 @@ class FormatterPluginManager extends DefaultPluginManager { * The module handler. * @param \Drupal\Core\Language\LanguageManager $language_manager * The language manager. + * @param \Drupal\Core\Entity\Field\FieldTypePluginManager $field_type_manager + * The 'field type' plugin manager. */ - public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, LanguageManager $language_manager) { + public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, LanguageManager $language_manager, FieldTypePluginManager $field_type_manager) { $annotation_namespaces = array('Drupal\field\Annotation' => $namespaces['Drupal\field']); parent::__construct('Plugin/field/formatter', $namespaces, $annotation_namespaces, 'Drupal\field\Annotation\FieldFormatter'); $this->setCacheBackend($cache_backend, $language_manager, 'field_formatter_types'); $this->alterInfo($module_handler, 'field_formatter_info'); + $this->fieldTypeManager = $field_type_manager; } /** @@ -112,7 +123,7 @@ public function getInstance(array $options) { $definition = $this->getDefinition($configuration['type']); if (!isset($definition['class']) || !in_array($field_type, $definition['field_types'])) { // Grab the default widget for the field type. - $field_type_definition = field_info_field_types($field_type); + $field_type_definition = $this->fieldTypeManager->getDefinition($field_type); $plugin_id = $field_type_definition['default_formatter']; } @@ -142,11 +153,11 @@ public function prepareConfiguration($field_type, array $configuration) { ); // If no formatter is specified, use the default formatter. if (!isset($configuration['type'])) { - $field_type = field_info_field_types($field_type); + $field_type = $this->fieldTypeManager->getDefinition($field_type); $configuration['type'] = $field_type['default_formatter']; } // Fill in default settings values for the formatter. - $configuration['settings'] += field_info_formatter_settings($configuration['type']); + $configuration['settings'] += $this->getDefaultSettings($configuration['type']); return $configuration; } @@ -163,7 +174,7 @@ public function prepareConfiguration($field_type, array $configuration) { */ public function getOptions($field_type = NULL) { if (!isset($this->formatterOptions)) { - $field_types = field_info_field_types(); + $field_types = $this->fieldTypeManager->getDefinitions(); $options = array(); foreach ($this->getDefinitions() as $name => $formatter) { foreach ($formatter['field_types'] as $formatter_field_type) { diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetPluginManager.php b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetPluginManager.php index f8ea9b7d8237dbc044c7cca329fff2239b4f2022..12bb296fa5a5a228a931391d9753c13130054a6e 100644 --- a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetPluginManager.php +++ b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetPluginManager.php @@ -11,6 +11,7 @@ use Drupal\Component\Plugin\PluginManagerBase; use Drupal\Component\Plugin\Discovery\ProcessDecorator; use Drupal\Core\Cache\CacheBackendInterface; +use Drupal\Core\Entity\Field\FieldTypePluginManager; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\Language\LanguageManager; use Drupal\Core\Plugin\DefaultPluginManager; @@ -23,6 +24,13 @@ */ class WidgetPluginManager extends DefaultPluginManager { + /** + * The field type manager to define field. + * + * @var \Drupal\Core\Entity\Field\FieldTypePluginManager + */ + protected $fieldTypeManager; + /** * An array of widget options for each field type. * @@ -42,8 +50,10 @@ class WidgetPluginManager extends DefaultPluginManager { * The module handler. * @param \Drupal\Core\Language\LanguageManager $language_manager * The language manager. + * @param \Drupal\Core\Entity\Field\FieldTypePluginManager $field_type_manager + * The 'field type' plugin manager. */ - public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, LanguageManager $language_manager) { + public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, LanguageManager $language_manager, FieldTypePluginManager $field_type_manager) { $annotation_namespaces = array('Drupal\field\Annotation' => $namespaces['Drupal\field']); parent::__construct('Plugin/field/widget', $namespaces, $annotation_namespaces, 'Drupal\field\Annotation\FieldWidget'); @@ -52,6 +62,7 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac $this->alterInfo($module_handler, 'field_widget_info'); $this->factory = new WidgetFactory($this); + $this->fieldTypeManager = $field_type_manager; } /** @@ -93,7 +104,7 @@ public function getInstance(array $options) { $definition = $this->getDefinition($configuration['type']); if (!isset($definition['class']) || !in_array($field_type, $definition['field_types'])) { // Grab the default widget for the field type. - $field_type_definition = field_info_field_types($field_type); + $field_type_definition = $this->fieldTypeManager->getDefinition($field_type); $plugin_id = $field_type_definition['default_widget']; } @@ -137,11 +148,11 @@ public function prepareConfiguration($field_type, array $configuration) { ); // If no widget is specified, use the default widget. if (!isset($configuration['type'])) { - $field_type = field_info_field_types($field_type); + $field_type = $this->fieldTypeManager->getDefinition($field_type); $configuration['type'] = $field_type['default_widget']; } // Fill in default settings values for the widget. - $configuration['settings'] += field_info_widget_settings($configuration['type']); + $configuration['settings'] += $this->getDefaultSettings($configuration['type']); return $configuration; } @@ -160,7 +171,7 @@ public function prepareConfiguration($field_type, array $configuration) { public function getOptions($field_type = NULL) { if (!isset($this->widgetOptions)) { $options = array(); - $field_types = field_info_field_types(); + $field_types = $this->fieldTypeManager->getDefinitions(); $widget_types = $this->getDefinitions(); uasort($widget_types, 'drupal_sort_weight'); foreach ($widget_types as $name => $widget_type) { diff --git a/core/modules/field/lib/Drupal/field/Plugin/views/field/Field.php b/core/modules/field/lib/Drupal/field/Plugin/views/field/Field.php index 7ce432ba3f3323fe49e20f7af4799bcfaa999e34..fdfea106282529079e912fe8b276c1e02265ad5c 100644 --- a/core/modules/field/lib/Drupal/field/Plugin/views/field/Field.php +++ b/core/modules/field/lib/Drupal/field/Plugin/views/field/Field.php @@ -299,7 +299,7 @@ protected function defineOptions() { // defineOptions runs before init/construct, so no $this->field_info $field = field_info_field($this->definition['field_name']); - $field_type = field_info_field_types($field['type']); + $field_type = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($field['type']); $column_names = array_keys($field['columns']); $default_column = ''; // Try to determine a sensible default. @@ -424,7 +424,7 @@ public function buildOptionsForm(&$form, &$form_state) { // Get the currently selected formatter. $format = $this->options['type']; - $settings = $this->options['settings'] + field_info_formatter_settings($format); + $settings = $this->options['settings'] + \Drupal::service('plugin.manager.field.formatter')->getDefaultSettings($format); $options = array( 'field_definition' => $field, diff --git a/core/modules/field/lib/Drupal/field/Tests/CrudTest.php b/core/modules/field/lib/Drupal/field/Tests/CrudTest.php index b7b7d580166cd8ba6dcbd5f4371c62408244c58b..8f3a995873c891fd34284ec3cdcfac5187d61a36 100644 --- a/core/modules/field/lib/Drupal/field/Tests/CrudTest.php +++ b/core/modules/field/lib/Drupal/field/Tests/CrudTest.php @@ -60,7 +60,7 @@ function testCreateField() { $this->assertEqual($field_config['cardinality'], 1, 'Cardinality defaults to 1.'); // Ensure that default settings are present. - $field_type = field_info_field_types($field_definition['type']); + $field_type = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($field_definition['type']); $this->assertEqual($field_config['settings'], $field_type['settings'], 'Default field settings have been written.'); // Ensure that default storage was set. diff --git a/core/modules/field/lib/Drupal/field/Tests/DisplayApiTest.php b/core/modules/field/lib/Drupal/field/Tests/DisplayApiTest.php index 70195d355ab89bce12780fbff13bfc988ce5b214..e2fb2f9778a2014fc97166cc9cb678ccb8c3a9da 100644 --- a/core/modules/field/lib/Drupal/field/Tests/DisplayApiTest.php +++ b/core/modules/field/lib/Drupal/field/Tests/DisplayApiTest.php @@ -121,7 +121,7 @@ function testFieldViewField() { // No display settings: check that default display settings are used. $output = field_view_field($this->entity, $this->field_name); $this->content = drupal_render($output); - $settings = field_info_formatter_settings('field_test_default'); + $settings = \Drupal::service('plugin.manager.field.formatter')->getDefaultSettings('field_test_default'); $setting = $settings['test_formatter_setting']; $this->assertText($this->label, 'Label was displayed.'); foreach ($this->values as $delta => $value) { @@ -193,7 +193,7 @@ function testFieldViewField() { */ function testFieldViewValue() { // No display settings: check that default display settings are used. - $settings = field_info_formatter_settings('field_test_default'); + $settings = \Drupal::service('plugin.manager.field.formatter')->getDefaultSettings('field_test_default'); $setting = $settings['test_formatter_setting']; foreach ($this->values as $delta => $value) { $item = $this->entity->{$this->field_name}[$delta]->getValue(); diff --git a/core/modules/field/lib/Drupal/field/Tests/FieldInfoTest.php b/core/modules/field/lib/Drupal/field/Tests/FieldInfoTest.php index 16cfcd1cf5c68b2ec6eea133a0f4f9e78f479a26..70f99f128f3e93b674388b48873c47950131067a 100644 --- a/core/modules/field/lib/Drupal/field/Tests/FieldInfoTest.php +++ b/core/modules/field/lib/Drupal/field/Tests/FieldInfoTest.php @@ -24,7 +24,7 @@ function testFieldInfo() { // Test that field_test module's fields, widgets, and formatters show up. $field_test_info = field_test_field_info(); - $info = field_info_field_types(); + $info = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions(); foreach ($field_test_info as $t_key => $field_type) { foreach ($field_type as $key => $val) { $this->assertEqual($info[$t_key][$key], $val, format_string('Field type %t_key key %key is %value', array('%t_key' => $t_key, '%key' => $key, '%value' => print_r($val, TRUE)))); @@ -139,7 +139,7 @@ function testFieldPrepare() { $field = field_info_field($field_definition['field_name']); // Check that all expected settings are in place. - $field_type = field_info_field_types($field_definition['type']); + $field_type = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($field_definition['type']); $this->assertEqual($field['settings'], $field_type['settings'], 'All expected default field settings are present.'); } @@ -172,7 +172,7 @@ function testInstancePrepare() { $instance = field_info_instance($instance_definition['entity_type'], $instance_definition['field_name'], $instance_definition['bundle']); // Check that all expected instance settings are in place. - $field_type = field_info_field_types($field_definition['type']); + $field_type = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($field_definition['type']); $this->assertEqual($instance['settings'], $field_type['instance_settings'] , 'All expected instance settings are present.'); } @@ -279,18 +279,9 @@ function testFieldMap() { function testSettingsInfo() { $info = field_test_field_info(); foreach ($info as $type => $data) { - $this->assertIdentical(field_info_field_settings($type), $data['settings'], format_string("field_info_field_settings returns %type's field settings", array('%type' => $type))); - $this->assertIdentical(field_info_instance_settings($type), $data['instance_settings'], format_string("field_info_field_settings returns %type's field instance settings", array('%type' => $type))); - } - - foreach (array('test_field_widget', 'test_field_widget_multiple') as $type) { - $info = field_info_widget_types($type); - $this->assertIdentical(field_info_widget_settings($type), $info['settings'], format_string("field_info_widget_settings returns %type's widget settings", array('%type' => $type))); - } - - foreach (array('field_test_default', 'field_test_multiple', 'field_test_with_prepare_view') as $type) { - $info = field_info_formatter_types($type); - $this->assertIdentical(field_info_formatter_settings($type), $info['settings'], format_string("field_info_formatter_settings returns %type's formatter settings", array('%type' => $type))); + $field_type_manager = \Drupal::service('plugin.manager.entity.field.field_type'); + $this->assertIdentical($field_type_manager->getDefaultSettings($type), $data['settings'], format_string("field settings service returns %type's field settings", array('%type' => $type))); + $this->assertIdentical($field_type_manager->getDefaultInstanceSettings($type), $data['instance_settings'], format_string("field instance settings service returns %type's field instance settings", array('%type' => $type))); } } @@ -323,7 +314,7 @@ function testFieldInfoCache() { * Test that the widget definition functions work. */ function testWidgetDefinition() { - $widget_definition = field_info_widget_types('test_field_widget_multiple'); + $widget_definition = \Drupal::service('plugin.manager.field.widget')->getDefinition('test_field_widget_multiple'); // Test if hook_field_widget_info_alter is beïng called. $this->assertTrue(in_array('test_field', $widget_definition['field_types']), "The 'test_field_widget_multiple' widget is enabled for the 'test_field' field type in field_test_field_widget_info_alter()."); diff --git a/core/modules/field/lib/Drupal/field/Tests/FieldInstanceCrudTest.php b/core/modules/field/lib/Drupal/field/Tests/FieldInstanceCrudTest.php index 29e6cb2d5c88ca8fa91efa609ae15515cc1b9bb8..cade864d7fb73b20f1f165aaa0003a595ad2b89f 100644 --- a/core/modules/field/lib/Drupal/field/Tests/FieldInstanceCrudTest.php +++ b/core/modules/field/lib/Drupal/field/Tests/FieldInstanceCrudTest.php @@ -74,7 +74,7 @@ function testCreateFieldInstance() { // applied on write. $config = \Drupal::config('field.instance.' . $instance->id())->get(); - $field_type = field_info_field_types($this->field_definition['type']); + $field_type = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($this->field_definition['type']); // Check that default values are set. $this->assertEqual($config['required'], FALSE, 'Required defaults to false.'); diff --git a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php index 5a45c21f77cdf4a4bc912c0df236cf69c77e03d4..8e727a6204b640e5172b6f863bb6d49db345b919 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php @@ -45,7 +45,7 @@ public function __construct(EntityManager $entity_manager, PluginManagerBase $pl parent::__construct($entity_manager); $this->pluginManager = $plugin_manager; - $this->fieldTypes = field_info_field_types(); + $this->fieldTypes = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions(); } /** diff --git a/core/modules/field_ui/lib/Drupal/field_ui/FieldListController.php b/core/modules/field_ui/lib/Drupal/field_ui/FieldListController.php index 7485f885b3f3a57013bd257000f4f40c93b36c0c..514e966f9a8ba3b81999c2b81c8b78ae915b5472 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/FieldListController.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/FieldListController.php @@ -10,6 +10,7 @@ use Drupal\Core\Config\Entity\ConfigEntityListController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\EntityManager; +use Drupal\Core\Entity\Field\FieldTypePluginManager; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\field\FieldInfo; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -47,6 +48,13 @@ class FieldListController extends ConfigEntityListController { */ protected $bundles; + /** + * The field type manager. + * + * @var \Drupal\Core\Entity\Field\FieldTypePluginManager + */ + protected $fieldTypeManager; + /** * Constructs a new EntityListController object. * @@ -60,14 +68,17 @@ class FieldListController extends ConfigEntityListController { * The module handler to invoke hooks on. * @param \Drupal\field\FieldInfo $field_info * The field info service. + * @param \Drupal\Core\Entity\Field\FieldTypePluginManager $field_type_manager + * The 'field type' plugin manager. */ - public function __construct($entity_type, array $entity_info, EntityManager $entity_manager, ModuleHandlerInterface $module_handler, FieldInfo $field_info) { + public function __construct($entity_type, array $entity_info, EntityManager $entity_manager, ModuleHandlerInterface $module_handler, FieldInfo $field_info, FieldTypePluginManager $field_type_manager) { parent::__construct($entity_type, $entity_info, $entity_manager->getStorageController($entity_type), $module_handler); - $this->fieldTypes = field_info_field_types(); $this->fieldInfo = $field_info->getFieldMap(); $this->entityManager = $entity_manager; $this->bundles = entity_get_bundles(); + $this->fieldTypeManager = $field_type_manager; + $this->fieldTypes = $this->fieldTypeManager->getDefinitions(); } /** @@ -79,7 +90,8 @@ public static function createInstance(ContainerInterface $container, $entity_typ $entity_info, $container->get('plugin.manager.entity'), $container->get('module_handler'), - $container->get('field.info') + $container->get('field.info'), + $container->get('plugin.manager.entity.field.field_type') ); } diff --git a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php index 8e7e770fe183792b72eeb0d3ea9494909be64ca8..d4c392ca6aaae71b57ad5b077662ebcb7e5da34a 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php @@ -7,6 +7,8 @@ namespace Drupal\field_ui; +use Drupal\Core\Entity\EntityManager; +use Drupal\Core\Entity\Field\FieldTypePluginManager; use Drupal\field_ui\OverviewBase; use Symfony\Component\DependencyInjection\ContainerInterface; use Drupal\field\Plugin\Core\Entity\Field; @@ -16,6 +18,36 @@ */ class FieldOverview extends OverviewBase { + /** + * The field type manager. + * + * @var \Drupal\Core\Entity\Field\FieldTypePluginManager + */ + protected $fieldTypeManager; + + /** + * Constructs a new FieldOverview. + * + * @param \Drupal\Core\Entity\EntityManager $entity_manager + * The entity manager. + * @param \Drupal\Core\Entity\Field\FieldTypePluginManager $field_type_manager + * The field type manager + */ + public function __construct(EntityManager $entity_manager, FieldTypePluginManager $field_type_manager) { + $this->entityManager = $entity_manager; + $this->fieldTypeManager = $field_type_manager; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('plugin.manager.entity'), + $container->get('plugin.manager.entity.field.field_type') + ); + } + /** * {@inheritdoc} */ @@ -45,7 +77,7 @@ public function buildForm(array $form, array &$form_state, $entity_type = NULL, // Gather bundle information. $instances = field_info_instances($this->entity_type, $this->bundle); - $field_types = field_info_field_types(); + $field_types = $this->fieldTypeManager->getDefinitions(); // Field prefix. $field_prefix = config('field_ui.settings')->get('field_prefix'); @@ -445,7 +477,7 @@ public function submitForm(array &$form, array &$form_state) { */ protected function getExistingFieldOptions() { $info = array(); - $field_types = field_info_field_types(); + $field_types = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions(); foreach (field_info_instances() as $existing_entity_type => $bundles) { foreach ($bundles as $existing_bundle => $instances) { diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Form/FieldInstanceEditForm.php b/core/modules/field_ui/lib/Drupal/field_ui/Form/FieldInstanceEditForm.php index 48a5bd76309ed77961312aabc3532f73373a7e37..046e012ef3a136f5152cc05edfb5c7bcdfff9099 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/Form/FieldInstanceEditForm.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/Form/FieldInstanceEditForm.php @@ -11,6 +11,7 @@ use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\EntityManager; use Drupal\Core\Entity\EntityNG; +use Drupal\Core\Entity\Field\FieldTypePluginManager; use Drupal\Core\Form\FormInterface; use Drupal\Core\Language\Language; use Drupal\field\FieldInstanceInterface; @@ -44,6 +45,13 @@ class FieldInstanceEditForm implements FormInterface, ControllerInterface { */ protected $entityManager; + /** + * The field type manager. + * + * @var \Drupal\Core\Entity\Field\FieldTypePluginManager + */ + protected $fieldTypeManager; + /** * Constructs a new field instance form. * @@ -51,10 +59,13 @@ class FieldInstanceEditForm implements FormInterface, ControllerInterface { * The entity manager. * @param \Drupal\field\Plugin\Type\Widget\WidgetPluginManager $widget_manager * The field widget plugin manager. + * @param \Drupal\Core\Entity\Field\FieldTypePluginManager $field_type_manager + * The field type manager. */ - public function __construct(EntityManager $entity_manager, WidgetPluginManager $widget_manager) { + public function __construct(EntityManager $entity_manager, WidgetPluginManager $widget_manager, FieldTypePluginManager $field_type_manager) { $this->entityManager = $entity_manager; $this->widgetManager = $widget_manager; + $this->fieldTypeManager = $field_type_manager; } /** @@ -63,7 +74,8 @@ public function __construct(EntityManager $entity_manager, WidgetPluginManager $ public static function create(ContainerInterface $container) { return new static( $container->get('plugin.manager.entity'), - $container->get('plugin.manager.field.widget') + $container->get('plugin.manager.field.widget'), + $container->get('plugin.manager.entity.field.field_type') ); } @@ -272,7 +284,7 @@ protected function getDefaultValueWidget($field, array &$form, &$form_state) { // @todo Clean this up since we don't have $this->instance['widget'] anymore. // see https://drupal.org/node/2028759 if ($this->instance['widget']['type'] == 'hidden') { - $field_type = field_info_field_types($field['type']); + $field_type = $this->fieldTypeManager->getDefinition($field['type']); $default_widget = $this->widgetManager->getDefinition($field_type['default_widget']); $this->instance['widget'] = array( diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php index a5d8790ba8c05d97d7c406c81eef6577f93d93b7..d1edd6df5b2f6f8fd2065d454a4c8393d1b3c6f4 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php @@ -47,7 +47,7 @@ function testFormatterUI() { $display = entity_get_display('node', $this->type, 'default'); $display_options = $display->getComponent('field_test'); $format = $display_options['type']; - $default_settings = field_info_formatter_settings($format); + $default_settings = \Drupal::service('plugin.manager.field.formatter')->getDefaultSettings($format); $setting_name = key($default_settings); $setting_value = $display_options['settings'][$setting_name]; @@ -61,7 +61,7 @@ function testFormatterUI() { $edit = array('fields[field_test][type]' => 'field_test_multiple', 'refresh_rows' => 'field_test'); $this->drupalPostAJAX(NULL, $edit, array('op' => t('Refresh'))); $format = 'field_test_multiple'; - $default_settings = field_info_formatter_settings($format); + $default_settings = \Drupal::service('plugin.manager.field.formatter')->getDefaultSettings($format); $setting_name = key($default_settings); $setting_value = $default_settings[$setting_name]; $this->assertFieldByName('fields[field_test][type]', $format, 'The expected formatter is selected.'); @@ -113,7 +113,7 @@ public function testWidgetUI() { $display = entity_get_form_display('node', $this->type, 'default'); $display_options = $display->getComponent('field_test'); $widget_type = $display_options['type']; - $default_settings = field_info_widget_settings($widget_type); + $default_settings = \Drupal::service('plugin.manager.field.widget')->getDefaultSettings($widget_type); $setting_name = key($default_settings); $setting_value = $display_options['settings'][$setting_name]; @@ -127,7 +127,7 @@ public function testWidgetUI() { $edit = array('fields[field_test][type]' => 'test_field_widget_multiple', 'refresh_rows' => 'field_test'); $this->drupalPostAJAX(NULL, $edit, array('op' => t('Refresh'))); $widget_type = 'test_field_widget_multiple'; - $default_settings = field_info_widget_settings($widget_type); + $default_settings = \Drupal::service('plugin.manager.field.widget')->getDefaultSettings($widget_type); $setting_name = key($default_settings); $setting_value = $default_settings[$setting_name]; $this->assertFieldByName('fields[field_test][type]', $widget_type, 'The expected widget is selected.'); @@ -181,7 +181,7 @@ function testViewModeCustom() { $node = $this->drupalCreateNode($settings); // Gather expected output values with the various formatters. - $formatters = field_info_formatter_types(); + $formatters = \Drupal::service('plugin.manager.field.formatter')->getDefinitions(); $output = array( 'field_test_default' => $formatters['field_test_default']['settings']['test_formatter_setting'] . '|' . $value, 'field_test_with_prepare_view' => $formatters['field_test_with_prepare_view']['settings']['test_formatter_setting_additional'] . '|' . $value. '|' . ($value + 1), diff --git a/core/modules/file/file.field.inc b/core/modules/file/file.field.inc index d3dc0a09c77cb13c067131416e603cd1e78b05ee..6445527149593e1c7807948295b3a59aa3019413 100644 --- a/core/modules/file/file.field.inc +++ b/core/modules/file/file.field.inc @@ -38,7 +38,7 @@ function file_field_info() { * Implements hook_field_settings_form(). */ function file_field_settings_form($field, $instance) { - $defaults = field_info_field_settings($field['type']); + $defaults = \Drupal::service('plugin.manager.entity.field.field_type')->getDefaultSettings($field['type']); $settings = array_merge($defaults, $field['settings']); $form['#attached']['library'][] = array('file', 'drupal.file'); diff --git a/core/modules/image/image.field.inc b/core/modules/image/image.field.inc index 1f0e87b5394541f10ac8a7e1ec6fa7918561f811..2465e04ebcc1dbf38b6cf2bbb92c418e2f1d316f 100644 --- a/core/modules/image/image.field.inc +++ b/core/modules/image/image.field.inc @@ -57,7 +57,7 @@ function image_field_info() { * Implements hook_field_settings_form(). */ function image_field_settings_form($field, $instance) { - $defaults = field_info_field_settings($field['type']); + $defaults = \Drupal::service('plugin.manager.entity.field.field_type')->getDefaultSettings($field['type']); $settings = array_merge($defaults, $field['settings']); $scheme_options = array(); diff --git a/core/modules/node/node.tokens.inc b/core/modules/node/node.tokens.inc index f12836d376d5f417653b886546448f27759c4c65..357562144046e850299f53623e3a37286d238e3b 100644 --- a/core/modules/node/node.tokens.inc +++ b/core/modules/node/node.tokens.inc @@ -160,7 +160,7 @@ function node_tokens($type, $tokens, array $data = array(), array $options = arr $length = $display_options['settings']['trim_length']; } else { - $settings = field_info_formatter_settings('text_summary_or_trimmed'); + $settings = \Drupal::service('plugin.manager.field.formatter')->getDefaultSettings('text_summary_or_trimmed'); $length = $settings['trim_length']; } diff --git a/core/modules/options/lib/Drupal/options/Plugin/field/widget/OptionsWidgetBase.php b/core/modules/options/lib/Drupal/options/Plugin/field/widget/OptionsWidgetBase.php index b74147e4c5c706f9c85421a779c6b869039d45aa..0d55ab326486e2e451ebb62d4f2c3f5aa2c6380f 100644 --- a/core/modules/options/lib/Drupal/options/Plugin/field/widget/OptionsWidgetBase.php +++ b/core/modules/options/lib/Drupal/options/Plugin/field/widget/OptionsWidgetBase.php @@ -115,7 +115,7 @@ protected function getOptions() { $module_handler = \Drupal::moduleHandler(); // Get the list of options from the field type module, and sanitize them. - $field_type_info = field_info_field_types($this->fieldDefinition->getFieldType()); + $field_type_info = \Drupal::service('plugin.manager.entity.field.field_type')->getDefinition($this->fieldDefinition->getFieldType()); $module = $field_type_info['provider']; $options = (array) $module_handler->invoke($module, 'options_list', array($this->fieldDefinition, $this->entity));