From 55e5ee436ca7b92da767312b479ea446f7a1c402 Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Sat, 6 Apr 2024 11:00:42 +0100
Subject: [PATCH] Issue #3421020 by godotislate, mohit_aghera, quietone:
 Convert MigrateField plugin discovery to attributes

(cherry picked from commit 8e51b463d52c12501daf8a7a9b32f9b76674bf8f)
---
 .../field/src/Plugin/migrate/field/Email.php  | 21 +++++++--------
 .../migrate/field/d7/EntityReference.php      | 20 +++++++-------
 .../Plugin/migrate/field/d7/NumberField.php   | 24 ++++++++---------
 .../src/Plugin/migrate/field/d6/FileField.php | 15 ++++++-----
 .../src/Plugin/migrate/field/d7/FileField.php | 15 ++++++-----
 .../Plugin/migrate/field/d6/ImageField.php    | 15 ++++++-----
 .../Plugin/migrate/field/d7/ImageField.php    | 15 +++++------
 .../src/Plugin/migrate/field/d6/LinkField.php | 21 +++++++--------
 .../src/Plugin/migrate/field/d7/LinkField.php | 20 +++++++-------
 .../Plugin/migrate/field/d6/NodeReference.php | 20 +++++++-------
 .../Plugin/migrate/field/d6/UserReference.php | 21 +++++++--------
 .../Plugin/migrate/field/d7/NodeReference.php | 20 +++++++-------
 .../Plugin/migrate/field/d7/UserReference.php | 20 +++++++-------
 .../src/Plugin/migrate/field/D6FileField.php  | 20 +++++++-------
 .../field/D6NoCoreVersionSpecified.php        | 13 +++++----
 .../migrate/field/d6/OptionWidgetsField.php   | 15 ++++++-----
 .../src/Plugin/migrate/field/d7/ListField.php | 27 +++++++++----------
 .../Plugin/migrate/field/d7/OptionsField.php  | 15 +++++------
 .../migrate/field/TaxonomyTermReference.php   | 21 ++++++++-------
 .../Plugin/migrate/field/d7/PhoneField.php    | 21 +++++++--------
 .../migrate/field/d7/TelephoneField.php       | 15 +++++------
 .../src/Plugin/migrate/field/d6/TextField.php | 25 ++++++++---------
 .../src/Plugin/migrate/field/d7/TextField.php | 25 +++++++++--------
 23 files changed, 222 insertions(+), 222 deletions(-)

diff --git a/core/modules/field/src/Plugin/migrate/field/Email.php b/core/modules/field/src/Plugin/migrate/field/Email.php
index d68e7593bd1f..2c6ab50aac5f 100644
--- a/core/modules/field/src/Plugin/migrate/field/Email.php
+++ b/core/modules/field/src/Plugin/migrate/field/Email.php
@@ -3,23 +3,22 @@
 namespace Drupal\field\Plugin\migrate\field;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore spamspan
-
 /**
  * MigrateField Plugin for Drupal 6 and 7 email fields.
- *
- * @MigrateField(
- *   id = "email",
- *   core = {6,7},
- *   type_map = {
- *     "email" = "email"
- *   },
- *   source_module = "email",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'email',
+  core: [6, 7],
+  type_map: [
+    'email' => 'email',
+  ],
+  source_module: 'email',
+  destination_module: 'core',
+)]
 class Email extends FieldPluginBase {
 
   /**
diff --git a/core/modules/field/src/Plugin/migrate/field/d7/EntityReference.php b/core/modules/field/src/Plugin/migrate/field/d7/EntityReference.php
index bebb360d6366..3878265f244e 100644
--- a/core/modules/field/src/Plugin/migrate/field/d7/EntityReference.php
+++ b/core/modules/field/src/Plugin/migrate/field/d7/EntityReference.php
@@ -2,23 +2,23 @@
 
 namespace Drupal\field\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore entityreference
 
 /**
  * MigrateField plugin for Drupal 7 entity_reference fields.
- *
- * @MigrateField(
- *   id = "entityreference",
- *   type_map = {
- *     "entityreference" = "entity_reference",
- *   },
- *   core = {7},
- *   source_module = "entityreference",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'entityreference',
+  core: [7],
+  type_map: [
+    'entityreference' => 'entity_reference',
+  ],
+  source_module: 'entityreference',
+  destination_module: 'core',
+)]
 class EntityReference extends FieldPluginBase {
 
   /**
diff --git a/core/modules/field/src/Plugin/migrate/field/d7/NumberField.php b/core/modules/field/src/Plugin/migrate/field/d7/NumberField.php
index 98959b08077c..37c9eabceee3 100644
--- a/core/modules/field/src/Plugin/migrate/field/d7/NumberField.php
+++ b/core/modules/field/src/Plugin/migrate/field/d7/NumberField.php
@@ -2,21 +2,21 @@
 
 namespace Drupal\field\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 /**
  * MigrateField plugin for Drupal 7 number fields.
- *
- * @MigrateField(
- *   id = "number_default",
- *   type_map = {
- *     "number_integer" = "integer",
- *     "number_decimal" = "decimal",
- *     "number_float" = "float",
- *   },
- *   core = {7},
- *   source_module = "number",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'number_default',
+  core: [7],
+  type_map: [
+    'number_integer' => 'integer',
+    'number_decimal' => 'decimal',
+    'number_float' => 'float',
+  ],
+  source_module: 'number',
+  destination_module: 'core',
+)]
 class NumberField extends FieldPluginBase {}
diff --git a/core/modules/file/src/Plugin/migrate/field/d6/FileField.php b/core/modules/file/src/Plugin/migrate/field/d6/FileField.php
index 804e34a65585..7a93144180f6 100644
--- a/core/modules/file/src/Plugin/migrate/field/d6/FileField.php
+++ b/core/modules/file/src/Plugin/migrate/field/d6/FileField.php
@@ -4,18 +4,19 @@
 
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Row;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore filefield imagefield imagelink nodelink
-
 /**
- * @MigrateField(
- *   id = "filefield",
- *   core = {6},
- *   source_module = "filefield",
- *   destination_module = "file"
- * )
+ * MigrateField Plugin for Drupal 6 file fields.
  */
+#[MigrateField(
+  id: 'filefield',
+  core: [6],
+  source_module: 'filefield',
+  destination_module: 'file',
+)]
 class FileField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/file/src/Plugin/migrate/field/d7/FileField.php b/core/modules/file/src/Plugin/migrate/field/d7/FileField.php
index 528f789979af..3d5ff690cf2d 100644
--- a/core/modules/file/src/Plugin/migrate/field/d7/FileField.php
+++ b/core/modules/file/src/Plugin/migrate/field/d7/FileField.php
@@ -4,17 +4,18 @@
 
 use Drupal\file\Plugin\migrate\field\d6\FileField as D6FileField;
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 
 // cspell:ignore filefield
-
 /**
- * @MigrateField(
- *   id = "file",
- *   core = {7},
- *   source_module = "file",
- *   destination_module = "file"
- * )
+ * MigrateField Plugin for Drupal 7 file fields.
  */
+#[MigrateField(
+  id: 'file',
+  core: [7],
+  source_module: 'file',
+  destination_module: 'file',
+)]
 class FileField extends D6FileField {
 
   /**
diff --git a/core/modules/image/src/Plugin/migrate/field/d6/ImageField.php b/core/modules/image/src/Plugin/migrate/field/d6/ImageField.php
index bfa6b1ee4a67..a0a2ca040ca2 100644
--- a/core/modules/image/src/Plugin/migrate/field/d6/ImageField.php
+++ b/core/modules/image/src/Plugin/migrate/field/d6/ImageField.php
@@ -3,15 +3,16 @@
 namespace Drupal\image\Plugin\migrate\field\d6;
 
 use Drupal\file\Plugin\migrate\field\d6\FileField;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 
 // cspell:ignore imagefield
-
 /**
- * @MigrateField(
- *   id = "imagefield",
- *   core = {6},
- *   source_module = "imagefield",
- *   destination_module = "image"
- * )
+ * MigrateField Plugin for Drupal 6 image fields.
  */
+#[MigrateField(
+  id: 'imagefield',
+  core: [6],
+  source_module: 'imagefield',
+  destination_module: 'image',
+)]
 class ImageField extends FileField {}
diff --git a/core/modules/image/src/Plugin/migrate/field/d7/ImageField.php b/core/modules/image/src/Plugin/migrate/field/d7/ImageField.php
index afbe50391442..4e81630e675c 100644
--- a/core/modules/image/src/Plugin/migrate/field/d7/ImageField.php
+++ b/core/modules/image/src/Plugin/migrate/field/d7/ImageField.php
@@ -3,16 +3,15 @@
 namespace Drupal\image\Plugin\migrate\field\d7;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "image",
- *   core = {7},
- *   source_module = "image",
- *   destination_module = "image"
- * )
- */
+#[MigrateField(
+  id: 'image',
+  core: [7],
+  source_module: 'image',
+  destination_module: 'image',
+)]
 class ImageField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/link/src/Plugin/migrate/field/d6/LinkField.php b/core/modules/link/src/Plugin/migrate/field/d6/LinkField.php
index e890ec1edccf..7768658940e3 100644
--- a/core/modules/link/src/Plugin/migrate/field/d6/LinkField.php
+++ b/core/modules/link/src/Plugin/migrate/field/d6/LinkField.php
@@ -3,19 +3,18 @@
 namespace Drupal\link\Plugin\migrate\field\d6;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "link",
- *   core = {6},
- *   type_map = {
- *     "link" = "link",
- *   },
- *   source_module = "link",
- *   destination_module = "link"
- * )
- */
+#[MigrateField(
+  id: 'link',
+  core: [6],
+  type_map: [
+    'link' => 'link',
+  ],
+  source_module: 'link',
+  destination_module: 'link',
+)]
 class LinkField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/link/src/Plugin/migrate/field/d7/LinkField.php b/core/modules/link/src/Plugin/migrate/field/d7/LinkField.php
index 79eda71687a8..6bc6cf3e2241 100644
--- a/core/modules/link/src/Plugin/migrate/field/d7/LinkField.php
+++ b/core/modules/link/src/Plugin/migrate/field/d7/LinkField.php
@@ -4,22 +4,24 @@
 
 use Drupal\link\Plugin\migrate\field\d6\LinkField as D6LinkField;
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 
 /**
- * @MigrateField(
- *   id = "link_field",
- *   core = {7},
- *   type_map = {
- *     "link_field" = "link"
- *   },
- *   source_module = "link",
- *   destination_module = "link"
- * )
+ * MigrateField Plugin for Drupal 7 link fields.
  *
  * This plugin provides the exact same functionality as the Drupal 6 "link"
  * plugin with the exception that the plugin ID "link_field" is used in the
  * field type map.
  */
+#[MigrateField(
+  id: 'link_field',
+  core: [7],
+  type_map: [
+    'link_field' => 'link',
+  ],
+  source_module: 'link',
+  destination_module: 'link',
+)]
 class LinkField extends D6LinkField {
 
   /**
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/NodeReference.php b/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/NodeReference.php
index eebad2b98c4f..959bf68a0b45 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/NodeReference.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/NodeReference.php
@@ -4,23 +4,23 @@
 
 // cspell:ignore nodereference
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase;
 
 /**
  * MigrateField Plugin for Drupal 6 node reference fields.
  *
- * @MigrateField(
- *   id = "nodereference",
- *   core = {6},
- *   type_map = {
- *     "nodereference" = "entity_reference",
- *   },
- *   source_module = "nodereference",
- *   destination_module = "core",
- * )
- *
  * @internal
  */
+#[MigrateField(
+  id: 'nodereference',
+  core: [6],
+  type_map: [
+    'nodereference' => 'entity_reference',
+  ],
+  source_module: 'nodereference',
+  destination_module: 'core',
+)]
 class NodeReference extends ReferenceBase {
 
   /**
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/UserReference.php b/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/UserReference.php
index 75ffcfe6a350..82366a34439b 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/UserReference.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/UserReference.php
@@ -5,23 +5,22 @@
 // cspell:ignore userreference
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase;
 
 /**
  * MigrateField Plugin for Drupal 6 user reference fields.
- *
- * @MigrateField(
- *   id = "userreference",
- *   core = {6},
- *   type_map = {
- *     "userreference" = "entity_reference",
- *   },
- *   source_module = "userreference",
- *   destination_module = "core",
- * )
- *
  * @internal
  */
+#[MigrateField(
+  id: 'userreference',
+  core: [6],
+  type_map: [
+    'userreference' => 'entity_reference',
+  ],
+  source_module: 'userreference',
+  destination_module: 'core',
+)]
 class UserReference extends ReferenceBase {
 
   /**
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/NodeReference.php b/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/NodeReference.php
index 91d3e219d3ab..05515600513f 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/NodeReference.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/NodeReference.php
@@ -2,21 +2,21 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase;
 
 /**
  * MigrateField plugin for Drupal 7 node_reference fields.
- *
- * @MigrateField(
- *   id = "node_reference",
- *   type_map = {
- *     "node_reference" = "entity_reference",
- *   },
- *   core = {7},
- *   source_module = "node_reference",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'node_reference',
+  core: [7],
+  type_map: [
+    'node_reference' => 'entity_reference',
+  ],
+  source_module: 'node_reference',
+  destination_module: 'core',
+)]
 class NodeReference extends ReferenceBase {
 
   /**
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/UserReference.php b/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/UserReference.php
index 01bf09cec7f1..ea3ed54e2488 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/UserReference.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/UserReference.php
@@ -3,21 +3,21 @@
 namespace Drupal\migrate_drupal\Plugin\migrate\field\d7;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase;
 
 /**
  * MigrateField plugin for Drupal 7 user_reference fields.
- *
- * @MigrateField(
- *   id = "user_reference",
- *   type_map = {
- *     "user_reference" = "entity_reference",
- *   },
- *   core = {7},
- *   source_module = "user_reference",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'user_reference',
+  core: [7],
+  type_map: [
+    'user_reference' => 'entity_reference',
+  ],
+  source_module: 'user_reference',
+  destination_module: 'core',
+)]
 class UserReference extends ReferenceBase {
 
   /**
diff --git a/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6FileField.php b/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6FileField.php
index de55e1337a51..5d4535f59148 100644
--- a/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6FileField.php
+++ b/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6FileField.php
@@ -2,17 +2,19 @@
 
 namespace Drupal\migrate_field_plugin_manager_test\Plugin\migrate\field;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 /**
- * @MigrateField(
- *   id = "d6_file",
- *   core = {6},
- *   type_map = {
- *     "file" = "file"
- *   },
- *   source_module = "foo",
- *   destination_module = "bar"
- * )
+ * MigrateField Plugin for Drupal 6 file fields.
  */
+#[MigrateField(
+  id: 'd6_file',
+  core: [6],
+  type_map: [
+    'file' => 'file',
+  ],
+  source_module: 'foo',
+  destination_module: 'bar',
+)]
 class D6FileField extends FieldPluginBase {}
diff --git a/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6NoCoreVersionSpecified.php b/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6NoCoreVersionSpecified.php
index e7647a1562a2..47d68fd1e34d 100644
--- a/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6NoCoreVersionSpecified.php
+++ b/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6NoCoreVersionSpecified.php
@@ -2,13 +2,12 @@
 
 namespace Drupal\migrate_field_plugin_manager_test\Plugin\migrate\field;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "d6_no_core_version_specified",
- *   source_module = "foo",
- *   destination_module = "bar",
- * )
- */
+#[MigrateField(
+  id: 'd6_no_core_version_specified',
+  source_module: 'foo',
+  destination_module: 'bar',
+)]
 class D6NoCoreVersionSpecified extends FieldPluginBase {}
diff --git a/core/modules/options/src/Plugin/migrate/field/d6/OptionWidgetsField.php b/core/modules/options/src/Plugin/migrate/field/d6/OptionWidgetsField.php
index 9cbd412e432a..ca79d165abb5 100644
--- a/core/modules/options/src/Plugin/migrate/field/d6/OptionWidgetsField.php
+++ b/core/modules/options/src/Plugin/migrate/field/d6/OptionWidgetsField.php
@@ -2,16 +2,17 @@
 
 namespace Drupal\options\Plugin\migrate\field\d6;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore optionwidgets
-
 /**
- * @MigrateField(
- *   id = "optionwidgets",
- *   core = {6},
- *   source_module = "optionwidgets",
- *   destination_module = "options"
- * )
+ * MigrateField Plugin for Drupal 6 options fields.
  */
+#[MigrateField(
+  id: 'optionwidgets',
+  core: [6],
+  source_module: 'optionwidgets',
+  destination_module: 'options',
+)]
 class OptionWidgetsField extends FieldPluginBase {}
diff --git a/core/modules/options/src/Plugin/migrate/field/d7/ListField.php b/core/modules/options/src/Plugin/migrate/field/d7/ListField.php
index d982586a4a89..4f6253843eb0 100644
--- a/core/modules/options/src/Plugin/migrate/field/d7/ListField.php
+++ b/core/modules/options/src/Plugin/migrate/field/d7/ListField.php
@@ -2,20 +2,19 @@
 
 namespace Drupal\options\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "list",
- *   type_map = {
- *     "list_boolean" = "boolean",
- *     "list_integer" = "list_integer",
- *     "list_text" = "list_string",
- *     "list_float" = "list_float",
- *   },
- *   core = {7},
- *   source_module = "list",
- *   destination_module = "options"
- * )
- */
+#[MigrateField(
+  id: 'list',
+  core: [7],
+  type_map: [
+    'list_boolean' => 'boolean',
+    'list_integer' => 'list_integer',
+    'list_text' => 'list_string',
+    'list_float' => 'list_float',
+  ],
+  source_module: 'list',
+  destination_module: 'options',
+)]
 class ListField extends FieldPluginBase {}
diff --git a/core/modules/options/src/Plugin/migrate/field/d7/OptionsField.php b/core/modules/options/src/Plugin/migrate/field/d7/OptionsField.php
index e54ccb3e3794..58317a7cdcb0 100644
--- a/core/modules/options/src/Plugin/migrate/field/d7/OptionsField.php
+++ b/core/modules/options/src/Plugin/migrate/field/d7/OptionsField.php
@@ -2,14 +2,13 @@
 
 namespace Drupal\options\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "options",
- *   core = {7},
- *   source_module = "options",
- *   destination_module = "options"
- * )
- */
+#[MigrateField(
+  id: 'options',
+  core: [7],
+  source_module: 'options',
+  destination_module: 'options',
+)]
 class OptionsField extends FieldPluginBase {}
diff --git a/core/modules/taxonomy/src/Plugin/migrate/field/TaxonomyTermReference.php b/core/modules/taxonomy/src/Plugin/migrate/field/TaxonomyTermReference.php
index 7e3ca7df07d9..6f5ea63e42c1 100644
--- a/core/modules/taxonomy/src/Plugin/migrate/field/TaxonomyTermReference.php
+++ b/core/modules/taxonomy/src/Plugin/migrate/field/TaxonomyTermReference.php
@@ -3,21 +3,22 @@
 namespace Drupal\taxonomy\Plugin\migrate\field;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspeLL:ignore entityreference
-
 /**
- * @MigrateField(
- *   id = "taxonomy_term_reference",
- *   type_map = {
- *     "taxonomy_term_reference" = "entity_reference"
- *   },
- *   core = {6,7},
- *   source_module = "taxonomy",
- *   destination_module = "core",
- * )
+ * MigrateField Plugin for Drupal 6 & Drupal 7 taxonomy term reference fields.
  */
+#[MigrateField(
+  id: 'taxonomy_term_reference',
+  core: [6, 7],
+  type_map: [
+    'taxonomy_term_reference' => 'entity_reference',
+  ],
+  source_module: 'taxonomy',
+  destination_module: 'core',
+)]
 class TaxonomyTermReference extends FieldPluginBase {
 
   /**
diff --git a/core/modules/telephone/src/Plugin/migrate/field/d7/PhoneField.php b/core/modules/telephone/src/Plugin/migrate/field/d7/PhoneField.php
index 4a9d8cd4e005..1cc9b7f7ae9d 100644
--- a/core/modules/telephone/src/Plugin/migrate/field/d7/PhoneField.php
+++ b/core/modules/telephone/src/Plugin/migrate/field/d7/PhoneField.php
@@ -2,19 +2,18 @@
 
 namespace Drupal\telephone\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "phone",
- *   type_map = {
- *     "phone" = "telephone",
- *   },
- *   core = {7},
- *   source_module = "phone",
- *   destination_module = "telephone"
- * )
- */
+#[MigrateField(
+  id: 'phone',
+  core: [7],
+  type_map: [
+    'phone' => 'telephone',
+  ],
+  source_module: 'phone',
+  destination_module: 'telephone',
+)]
 class PhoneField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/telephone/src/Plugin/migrate/field/d7/TelephoneField.php b/core/modules/telephone/src/Plugin/migrate/field/d7/TelephoneField.php
index e11d93b13d41..88410513f295 100644
--- a/core/modules/telephone/src/Plugin/migrate/field/d7/TelephoneField.php
+++ b/core/modules/telephone/src/Plugin/migrate/field/d7/TelephoneField.php
@@ -2,16 +2,15 @@
 
 namespace Drupal\telephone\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "telephone",
- *   core = {7},
- *   source_module = "telephone",
- *   destination_module = "telephone"
- * )
- */
+#[MigrateField(
+  id: 'telephone',
+  core: [7],
+  source_module: 'telephone',
+  destination_module: 'telephone',
+)]
 class TelephoneField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/text/src/Plugin/migrate/field/d6/TextField.php b/core/modules/text/src/Plugin/migrate/field/d6/TextField.php
index b1e3ae7b4fa6..b507fad9dd41 100644
--- a/core/modules/text/src/Plugin/migrate/field/d6/TextField.php
+++ b/core/modules/text/src/Plugin/migrate/field/d6/TextField.php
@@ -4,23 +4,24 @@
 
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Row;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore optionwidgets
-
 /**
- * @MigrateField(
- *   id = "d6_text",
- *   type_map = {
- *     "text" = "text",
- *     "text_long" = "text_long",
- *     "text_with_summary" = "text_with_summary"
- *   },
- *   core = {6},
- *   source_module = "text",
- *   destination_module = "text",
- * )
+ * MigrateField Plugin for Drupal 6 text fields.
  */
+#[MigrateField(
+  id: 'd6_text',
+  core: [6],
+  type_map: [
+    'text' => 'text',
+    'text_long' => 'text_long',
+    'text_with_summary' => 'text_with_summary',
+  ],
+  source_module: 'text',
+  destination_module: 'text',
+)]
 class TextField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/text/src/Plugin/migrate/field/d7/TextField.php b/core/modules/text/src/Plugin/migrate/field/d7/TextField.php
index 21bcd74d8710..54e9db27d0f5 100644
--- a/core/modules/text/src/Plugin/migrate/field/d7/TextField.php
+++ b/core/modules/text/src/Plugin/migrate/field/d7/TextField.php
@@ -4,21 +4,20 @@
 
 use Drupal\migrate\Row;
 use Drupal\migrate\MigrateSkipRowException;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "d7_text",
- *   type_map = {
- *     "text" = "text",
- *     "text_long" = "text_long",
- *     "text_with_summary" = "text_with_summary"
- *   },
- *   core = {7},
- *   source_module = "text",
- *   destination_module = "text",
- * )
- */
+#[MigrateField(
+  id: 'd7_text',
+  core: [7],
+  type_map: [
+    'text' => 'text',
+    'text_long' => 'text_long',
+    'text_with_summary' => 'text_with_summary',
+  ],
+  source_module: 'text',
+  destination_module: 'text',
+)]
 class TextField extends FieldPluginBase {
 
   /**
-- 
GitLab