Issue #3426955 by mstrelan, sorlov, alexpott, smustgrave, godotislate: Convert ViewsField plugin discovery to attributes

(cherry picked from commit e0f270ff66281b06c2b33d5bd6a71b7f6576905f)
merge-requests/7079/head
Alex Pott 2024-03-15 14:51:42 +00:00
parent 3baba514dd
commit fc15d5ee53
No known key found for this signature in database
GPG Key ID: BDA67E7EE836E5CE
61 changed files with 142 additions and 120 deletions

View File

@ -2,13 +2,13 @@
namespace Drupal\comment\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\BulkForm;
/**
* Defines a comment operations bulk form element.
*
* @ViewsField("comment_bulk_form")
*/
#[ViewsField("comment_bulk_form")]
class CommentBulkForm extends BulkForm {
/**

View File

@ -2,14 +2,14 @@
namespace Drupal\comment\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\EntityField;
use Drupal\views\ResultRow;
/**
* Views field display for commented entity.
*
* @ViewsField("commented_entity")
*/
#[ViewsField("commented_entity")]
class CommentedEntity extends EntityField {
/**

View File

@ -2,6 +2,7 @@
namespace Drupal\comment\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\EntityField;
use Drupal\views\ResultRow;
@ -9,9 +10,8 @@ use Drupal\views\ResultRow;
* Field handler to display the depth of a comment.
*
* @ingroup views_field_handlers
*
* @ViewsField("comment_depth")
*/
#[ViewsField("comment_depth")]
class Depth extends EntityField {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\comment\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;
@ -10,9 +11,8 @@ use Drupal\views\ResultRow;
* Handler for showing comment module's entity links.
*
* @ingroup views_field_handlers
*
* @ViewsField("comment_entity_link")
*/
#[ViewsField("comment_entity_link")]
class EntityLink extends FieldPluginBase {
/**

View File

@ -2,6 +2,7 @@
namespace Drupal\comment\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\Date;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
use Drupal\views\ResultRow;
@ -11,9 +12,8 @@ use Drupal\views\ViewExecutable;
* Field handler to display the timestamp of a comment with the count of comments.
*
* @ingroup views_field_handlers
*
* @ViewsField("comment_last_timestamp")
*/
#[ViewsField("comment_last_timestamp")]
class LastTimestamp extends Date {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\comment\Plugin\views\field;
use Drupal\Core\Url;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\LinkBase;
use Drupal\views\ResultRow;
@ -10,9 +11,8 @@ use Drupal\views\ResultRow;
* Provides a comment approve link.
*
* @ingroup views_field_handlers
*
* @ViewsField("comment_link_approve")
*/
#[ViewsField("comment_link_approve")]
class LinkApprove extends LinkBase {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\comment\Plugin\views\field;
use Drupal\Core\Url;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\LinkBase;
use Drupal\views\ResultRow;
@ -10,9 +11,8 @@ use Drupal\views\ResultRow;
* Field handler to present a link to reply to a comment.
*
* @ingroup views_field_handlers
*
* @ViewsField("comment_link_reply")
*/
#[ViewsField("comment_link_reply")]
class LinkReply extends LinkBase {
/**

View File

@ -8,6 +8,7 @@ use Drupal\Core\Entity\EntityFieldManagerInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\node\Entity\Node;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\NumericField;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
use Drupal\views\ResultRow;
@ -18,9 +19,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
* Field handler to display the number of new comments.
*
* @ingroup views_field_handlers
*
* @ViewsField("node_new_comments")
*/
#[ViewsField("node_new_comments")]
class NodeNewComments extends NumericField {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\comment\Plugin\views\field;
use Drupal\user\Entity\User;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;
@ -10,9 +11,8 @@ use Drupal\views\ResultRow;
* Field handler to present the name of the last comment poster.
*
* @ingroup views_field_handlers
*
* @ViewsField("comment_ces_last_comment_name")
*/
#[ViewsField("comment_ces_last_comment_name")]
class StatisticsLastCommentName extends FieldPluginBase {
/**

View File

@ -2,15 +2,15 @@
namespace Drupal\comment\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\Date;
/**
* Field handler to display the newer of last comment / node updated.
*
* @ingroup views_field_handlers
*
* @ViewsField("comment_ces_last_updated")
*/
#[ViewsField("comment_ces_last_updated")]
class StatisticsLastUpdated extends Date {
/**

View File

@ -4,6 +4,7 @@ namespace Drupal\contact\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\LinkBase;
use Drupal\views\ResultRow;
@ -11,9 +12,8 @@ use Drupal\views\ResultRow;
* Defines a field that links to the user contact page, if access is permitted.
*
* @ingroup views_field_handlers
*
* @ViewsField("contact_link")
*/
#[ViewsField("contact_link")]
class ContactLink extends LinkBase {
/**

View File

@ -3,15 +3,15 @@
namespace Drupal\content_moderation\Plugin\views\field;
use Drupal\content_moderation\Plugin\views\ModerationStateJoinViewsHandlerTrait;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\EntityField;
/**
* A field handler for the computed moderation_state field.
*
* @ingroup views_field_handlers
*
* @ViewsField("moderation_state_field")
*/
#[ViewsField("moderation_state_field")]
class ModerationStateField extends EntityField {
use ModerationStateJoinViewsHandlerTrait;

View File

@ -2,15 +2,15 @@
namespace Drupal\content_translation\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\EntityLink;
/**
* Provides a translation link for an entity.
*
* @ingroup views_field_handlers
*
* @ViewsField("content_translation_link")
*/
#[ViewsField("content_translation_link")]
class TranslationLink extends EntityLink {
/**

View File

@ -8,6 +8,7 @@ use Drupal\Component\Utility\UrlHelper;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Routing\RedirectDestinationTrait;
use Drupal\Core\Url;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;
@ -15,9 +16,8 @@ use Drupal\views\ResultRow;
* Provides a handler that adds contextual links.
*
* @ingroup views_field_handlers
*
* @ViewsField("contextual_links")
*/
#[ViewsField("contextual_links")]
class ContextualLinks extends FieldPluginBase {
use RedirectDestinationTrait;

View File

@ -4,6 +4,7 @@ namespace Drupal\dblog\Plugin\views\field;
use Drupal\Component\Render\FormattableMarkup;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;
use Drupal\views\ViewExecutable;
@ -13,9 +14,8 @@ use Drupal\views\Plugin\views\display\DisplayPluginBase;
* Provides a field handler that renders a log event with replaced variables.
*
* @ingroup views_field_handlers
*
* @ViewsField("dblog_message")
*/
#[ViewsField("dblog_message")]
class DblogMessage extends FieldPluginBase {
/**

View File

@ -2,6 +2,7 @@
namespace Drupal\dblog\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;
@ -9,9 +10,8 @@ use Drupal\views\ResultRow;
* Provides a field handler that renders operation link markup.
*
* @ingroup views_field_handlers
*
* @ViewsField("dblog_operations")
*/
#[ViewsField("dblog_operations")]
class DblogOperations extends FieldPluginBase {
/**

View File

@ -4,6 +4,7 @@ namespace Drupal\file\Plugin\views\field;
use Drupal\Core\File\FileUrlGeneratorInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
use Drupal\views\ViewExecutable;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
@ -14,9 +15,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
* Field handler to provide simple renderer that allows linking to a file.
*
* @ingroup views_field_handlers
*
* @ViewsField("file")
*/
#[ViewsField("file")]
class File extends FieldPluginBase {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\history\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
use Drupal\views\ViewExecutable;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
@ -15,9 +16,8 @@ use Drupal\node\Plugin\views\field\Node;
* table is history.
*
* @ingroup views_field_handlers
*
* @ViewsField("history_user_timestamp")
*/
#[ViewsField("history_user_timestamp")]
class HistoryUserTimestamp extends Node {
/**

View File

@ -9,6 +9,7 @@ use Drupal\Core\Form\FormBuilderInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Drupal\media_library\MediaLibraryState;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\Render\ViewsRenderPipelineMarkup;
use Drupal\views\ResultRow;
@ -17,11 +18,10 @@ use Symfony\Component\HttpFoundation\Request;
/**
* Defines a field that outputs a checkbox and form for selecting media.
*
* @ViewsField("media_library_select_form")
*
* @internal
* Plugin classes are internal.
*/
#[ViewsField("media_library_select_form")]
class MediaLibrarySelectForm extends FieldPluginBase {
/**

View File

@ -4,6 +4,7 @@ namespace Drupal\node\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
use Drupal\views\ViewExecutable;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
@ -17,9 +18,8 @@ use Drupal\views\Plugin\views\field\FieldPluginBase;
* enabled by default.
*
* @ingroup views_field_handlers
*
* @ViewsField("node")
*/
#[ViewsField("node")]
class Node extends FieldPluginBase {
/**

View File

@ -2,13 +2,13 @@
namespace Drupal\node\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\BulkForm;
/**
* Defines a node operations bulk form element.
*
* @ViewsField("node_bulk_form")
*/
#[ViewsField("node_bulk_form")]
class NodeBulkForm extends BulkForm {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\node\Plugin\views\field;
use Drupal\Core\Url;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\LinkBase;
use Drupal\views\ResultRow;
@ -10,9 +11,8 @@ use Drupal\views\ResultRow;
* Field handler to present a link to a node revision.
*
* @ingroup views_field_handlers
*
* @ViewsField("node_revision_link")
*/
#[ViewsField("node_revision_link")]
class RevisionLink extends LinkBase {
/**

View File

@ -3,15 +3,15 @@
namespace Drupal\node\Plugin\views\field;
use Drupal\Core\Url;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Field handler to present link to delete a node revision.
*
* @ingroup views_field_handlers
*
* @ViewsField("node_revision_link_delete")
*/
#[ViewsField("node_revision_link_delete")]
class RevisionLinkDelete extends RevisionLink {
/**

View File

@ -3,15 +3,15 @@
namespace Drupal\node\Plugin\views\field;
use Drupal\Core\Url;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Field handler to present a link to revert a node to a revision.
*
* @ingroup views_field_handlers
*
* @ViewsField("node_revision_link_revert")
*/
#[ViewsField("node_revision_link_revert")]
class RevisionLinkRevert extends RevisionLink {
/**

View File

@ -2,6 +2,7 @@
namespace Drupal\search\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\NumericField;
use Drupal\views\ResultRow;
@ -9,9 +10,8 @@ use Drupal\views\ResultRow;
* Field handler for search score.
*
* @ingroup views_field_handlers
*
* @ViewsField("search_score")
*/
#[ViewsField("search_score")]
class Score extends NumericField {
/**

View File

@ -2,6 +2,7 @@
namespace Drupal\statistics\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\Date;
use Drupal\Core\Session\AccountInterface;
@ -9,9 +10,8 @@ use Drupal\Core\Session\AccountInterface;
* Field handler to display the most recent time the node has been viewed.
*
* @ingroup views_field_handlers
*
* @ViewsField("node_counter_timestamp")
*/
#[ViewsField("node_counter_timestamp")]
class NodeCounterTimestamp extends Date {
/**

View File

@ -2,6 +2,7 @@
namespace Drupal\statistics\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\NumericField;
use Drupal\Core\Session\AccountInterface;
@ -9,9 +10,8 @@ use Drupal\Core\Session\AccountInterface;
* Field handler to display numeric values from the statistics module.
*
* @ingroup views_field_handlers
*
* @ViewsField("statistics_numeric")
*/
#[ViewsField("statistics_numeric")]
class StatisticsNumeric extends NumericField {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\taxonomy\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ViewExecutable;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
use Drupal\views\Plugin\views\field\PrerenderList;
@ -13,9 +14,8 @@ use Drupal\taxonomy\VocabularyStorageInterface;
* Field handler to display all taxonomy terms of a node.
*
* @ingroup views_field_handlers
*
* @ViewsField("taxonomy_index_tid")
*/
#[ViewsField("taxonomy_index_tid")]
class TaxonomyIndexTid extends PrerenderList {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\taxonomy\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\EntityField;
use Drupal\views\ResultRow;
@ -10,9 +11,8 @@ use Drupal\views\ResultRow;
* Displays taxonomy term names and allows converting spaces to hyphens.
*
* @ingroup views_field_handlers
*
* @ViewsField("term_name")
*/
#[ViewsField("term_name")]
class TermName extends EntityField {
/**

View File

@ -4,6 +4,7 @@ namespace Drupal\user\Plugin\views\field;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
use Drupal\views\ViewExecutable;
use Drupal\views\Plugin\views\field\PrerenderList;
@ -13,9 +14,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
* Field handler to provide a list of permissions.
*
* @ingroup views_field_handlers
*
* @ViewsField("user_permissions")
*/
#[ViewsField("user_permissions")]
class Permissions extends PrerenderList {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\user\Plugin\views\field;
use Drupal\Core\Database\Connection;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
use Drupal\views\ViewExecutable;
use Drupal\views\Plugin\views\field\PrerenderList;
@ -13,9 +14,8 @@ use Drupal\user\Entity\Role;
* Field handler to provide a list of roles.
*
* @ingroup views_field_handlers
*
* @ViewsField("user_roles")
*/
#[ViewsField("user_roles")]
class Roles extends PrerenderList {
/**

View File

@ -4,13 +4,13 @@ namespace Drupal\user\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\user\UserInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\BulkForm;
/**
* Defines a user operations bulk form element.
*
* @ViewsField("user_bulk_form")
*/
#[ViewsField("user_bulk_form")]
class UserBulkForm extends BulkForm {
/**

View File

@ -5,6 +5,7 @@ namespace Drupal\user\Plugin\views\field;
use Drupal\Core\Extension\ModuleExtensionList;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;
use Drupal\user\UserDataInterface;
@ -16,9 +17,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
* @ingroup views_field_handlers
*
* @see \Drupal\user\UserDataInterface
*
* @ViewsField("user_data")
*/
#[ViewsField("user_data")]
class UserData extends FieldPluginBase {
/**

View File

@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace Drupal\views\Attribute;
use Drupal\Component\Plugin\Attribute\PluginID;
/**
* Defines a Plugin attribute class for views field handlers.
*
* @see \Drupal\views\Plugin\views\field\FieldPluginBase
*
* @ingroup views_field_handlers
*/
#[\Attribute(\Attribute::TARGET_CLASS)]
class ViewsField extends PluginID {
}

View File

@ -4,6 +4,7 @@ namespace Drupal\views\Plugin\views\field;
use Drupal\Component\Utility\Xss as UtilityXss;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Render\ViewsRenderPipelineMarkup;
use Drupal\views\ResultRow;
use Drupal\views\ViewExecutable;
@ -24,9 +25,8 @@ use Drupal\views\Plugin\views\display\DisplayPluginBase;
* @endcode
*
* @ingroup views_field_handlers
*
* @ViewsField("boolean")
*/
#[ViewsField("boolean")]
class Boolean extends FieldPluginBase {
/**

View File

@ -2,15 +2,15 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\BrokenHandlerTrait;
/**
* A special handler to take the place of missing or broken handlers.
*
* @ingroup views_field_handlers
*
* @ViewsField("broken")
*/
#[ViewsField("broken")]
class Broken extends FieldPluginBase {
use BrokenHandlerTrait;

View File

@ -14,6 +14,7 @@ use Drupal\Core\Routing\RedirectDestinationTrait;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\Core\Routing\ResettableStackedRouteMatchInterface;
use Drupal\Core\TypedData\TranslatableInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Entity\Render\EntityTranslationRenderTrait;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
use Drupal\views\Plugin\views\style\Table;
@ -23,9 +24,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Defines an actions-based bulk operation form element.
*
* @ViewsField("bulk_form")
*/
#[ViewsField("bulk_form")]
class BulkForm extends FieldPluginBase implements CacheableDependencyInterface {
use RedirectDestinationTrait;

View File

@ -3,15 +3,15 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Field handler to show a counter of the current row.
*
* @ingroup views_field_handlers
*
* @ViewsField("counter")
*/
#[ViewsField("counter")]
class Counter extends FieldPluginBase {
use UncacheableFieldHandlerTrait;

View File

@ -4,6 +4,7 @@ namespace Drupal\views\Plugin\views\field;
use Drupal\Component\Utility\Xss;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Render\ViewsRenderPipelineMarkup;
use Drupal\views\ResultRow;
@ -11,9 +12,8 @@ use Drupal\views\ResultRow;
* A handler to provide a field that is completely custom by the administrator.
*
* @ingroup views_field_handlers
*
* @ViewsField("custom")
*/
#[ViewsField("custom")]
class Custom extends FieldPluginBase {
/**

View File

@ -6,6 +6,7 @@ use Drupal\Core\Datetime\TimeZoneFormHelper;
use Drupal\Component\Datetime\TimeInterface;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Datetime\DateFormatterInterface;
@ -14,9 +15,8 @@ use Drupal\Core\Datetime\DateFormatterInterface;
* A handler to provide proper displays for dates.
*
* @ingroup views_field_handlers
*
* @ViewsField("date")
*/
#[ViewsField("date")]
class Date extends FieldPluginBase {
/**

View File

@ -2,15 +2,15 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Provides a handler that renders links as dropbutton.
*
* @ingroup views_field_handlers
*
* @ViewsField("dropbutton")
*/
#[ViewsField("dropbutton")]
class Dropbutton extends Links {
/**

View File

@ -23,6 +23,7 @@ use Drupal\Core\Render\Element;
use Drupal\Core\Render\RendererInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\Core\TypedData\TypedDataInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\FieldAPIHandlerTrait;
use Drupal\views\Entity\Render\EntityFieldRenderer;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
@ -35,9 +36,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
* A field that displays entity field data.
*
* @ingroup views_field_handlers
*
* @ViewsField("field")
*/
#[ViewsField("field")]
class EntityField extends FieldPluginBase implements CacheableDependencyInterface, MultiItemsFieldHandlerInterface, DependentWithRemovalPluginInterface {
use FieldAPIHandlerTrait;

View File

@ -6,6 +6,7 @@ use Drupal\Core\Entity\EntityMalformedException;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Entity\Exception\UndefinedLinkTemplateException;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
use Drupal\views\ViewExecutable;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
@ -13,9 +14,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Field handler to display entity label optionally linked to entity page.
*
* @ViewsField("entity_label")
*/
#[ViewsField("entity_label")]
class EntityLabel extends FieldPluginBase {
/**

View File

@ -3,15 +3,15 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Field handler to present a link to an entity.
*
* @ingroup views_field_handlers
*
* @ViewsField("entity_link")
*/
#[ViewsField("entity_link")]
class EntityLink extends LinkBase {
/**

View File

@ -2,15 +2,15 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Field handler to present a link to delete an entity.
*
* @ingroup views_field_handlers
*
* @ViewsField("entity_link_delete")
*/
#[ViewsField("entity_link_delete")]
class EntityLinkDelete extends EntityLink {
/**

View File

@ -2,15 +2,15 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Field handler to present a link to edit an entity.
*
* @ingroup views_field_handlers
*
* @ViewsField("entity_link_edit")
*/
#[ViewsField("entity_link_edit")]
class EntityLinkEdit extends EntityLink {
/**

View File

@ -7,6 +7,7 @@ use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Language\LanguageManagerInterface;
use Drupal\Core\Routing\RedirectDestinationTrait;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Entity\Render\EntityTranslationRenderTrait;
use Drupal\views\ResultRow;
use Symfony\Component\DependencyInjection\ContainerInterface;
@ -15,9 +16,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
* Renders all operations links for an entity.
*
* @ingroup views_field_handlers
*
* @ViewsField("entity_operations")
*/
#[ViewsField("entity_operations")]
class EntityOperations extends FieldPluginBase {
use EntityTranslationRenderTrait;

View File

@ -3,14 +3,14 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\Core\Session\AccountInterface;
use Drupal\views\Attribute\ViewsField;
/**
* Displays the language of an entity.
*
* @ingroup views_field_handlers
*
* @ViewsField("field_language")
*/
#[ViewsField("field_language")]
class FieldLanguage extends EntityField {
/**

View File

@ -24,9 +24,9 @@ use Drupal\Core\StringTranslation\TranslatableMarkup;
* Field handlers handle both querying and display of fields in views.
*
* Field handler plugins extend
* \Drupal\views\Plugin\views\field\FieldPluginBase. They must be
* annotated with \Drupal\views\Annotation\ViewsField annotation, and they
* must be in namespace directory Plugin\views\field.
* \Drupal\views\Plugin\views\field\FieldPluginBase. They must be attributed
* with \Drupal\views\Attribute\ViewsField attribute, and they must be in
* namespace directory Plugin\views\field.
*
* The following items can go into a hook_views_data() implementation in a
* field section to affect how the field handler will behave:

View File

@ -4,15 +4,15 @@ namespace Drupal\views\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\StringTranslation\ByteSizeMarkup;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Render a numeric value as a size.
*
* @ingroup views_field_handlers
*
* @ViewsField("file_size")
*/
#[ViewsField("file_size")]
class FileSize extends FieldPluginBase {
/**

View File

@ -3,15 +3,15 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Defines a field handler to translate a language into its readable form.
*
* @ingroup views_field_handlers
*
* @ViewsField("language")
*/
#[ViewsField("language")]
class LanguageField extends FieldPluginBase {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
@ -12,9 +13,8 @@ use Drupal\views\ResultRow;
* Definition items:
* - options callback: The function to call in order to generate the value options. If omitted, the options 'Yes' and 'No' will be used.
* - options arguments: An array of arguments to pass to the options callback.
*
* @ViewsField("machine_name")
*/
#[ViewsField("machine_name")]
class MachineName extends FieldPluginBase {
/**

View File

@ -2,6 +2,7 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
use Drupal\views\ResultRow;
use Drupal\views\ViewExecutable;
@ -15,9 +16,8 @@ use Drupal\views\ViewExecutable;
* which goes with the 'body' field.
*
* @ingroup views_field_handlers
*
* @ViewsField("markup")
*/
#[ViewsField("markup")]
class Markup extends FieldPluginBase {
/**

View File

@ -5,6 +5,7 @@ namespace Drupal\views\Plugin\views\field;
use Drupal\Component\Gettext\PoItem;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\StringTranslation\PluralTranslatableMarkup;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
@ -15,9 +16,8 @@ use Drupal\views\ResultRow;
* will be assumed to be integer.
*
* @ingroup views_field_handlers
*
* @ViewsField("numeric")
*/
#[ViewsField("numeric")]
class NumericField extends FieldPluginBase {
/**

View File

@ -8,6 +8,7 @@ use Drupal\Core\Entity\EntityRepositoryInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Language\LanguageManagerInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Entity\Render\EntityTranslationRenderTrait;
use Drupal\views\ResultRow;
use Symfony\Component\DependencyInjection\ContainerInterface;
@ -17,9 +18,8 @@ use Drupal\Core\Cache\Cache;
* Provides a field handler which renders an entity in a certain view mode.
*
* @ingroup views_field_handlers
*
* @ViewsField("rendered_entity")
*/
#[ViewsField("rendered_entity")]
class RenderedEntity extends FieldPluginBase implements CacheableDependencyInterface {
use EntityTranslationRenderTrait;

View File

@ -3,15 +3,15 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Field handler to show data of serialized fields.
*
* @ingroup views_field_handlers
*
* @ViewsField("serialized")
*/
#[ViewsField("serialized")]
class Serialized extends FieldPluginBase {
/**

View File

@ -2,13 +2,14 @@
namespace Drupal\views\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
/**
* Default implementation of the base field plugin.
*
* @ingroup views_field_handlers
*
* @ViewsField("standard")
*/
#[ViewsField("standard")]
class Standard extends FieldPluginBase {
}

View File

@ -4,6 +4,7 @@ namespace Drupal\views\Plugin\views\field;
use Drupal\Core\Datetime\DateFormatterInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
use Symfony\Component\DependencyInjection\ContainerInterface;
@ -11,9 +12,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
* A handler to provide proper displays for time intervals.
*
* @ingroup views_field_handlers
*
* @ViewsField("time_interval")
*/
#[ViewsField("time_interval")]
class TimeInterval extends FieldPluginBase {
/**

View File

@ -5,15 +5,15 @@ namespace Drupal\views\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Link;
use Drupal\Core\Url as CoreUrl;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\ResultRow;
/**
* Field handler to provide simple renderer that turns a URL into a clickable link.
*
* @ingroup views_field_handlers
*
* @ViewsField("url")
*/
#[ViewsField("url")]
class Url extends FieldPluginBase {
/**

View File

@ -3,6 +3,7 @@
namespace Drupal\views_test_data\Plugin\views\field;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\Plugin\views\field\UncacheableFieldHandlerTrait;
use Drupal\views\ResultRow;
@ -11,9 +12,8 @@ use Drupal\views\ResultRow;
* A handler to provide a field that is completely custom by the administrator.
*
* @ingroup views_field_handlers
*
* @ViewsField("field_form_button_test")
*/
#[ViewsField("field_form_button_test")]
class FieldFormButtonTest extends FieldPluginBase {
use UncacheableFieldHandlerTrait;

View File

@ -2,12 +2,14 @@
namespace Drupal\views_test_data\Plugin\views\field;
use Drupal\views\Attribute\ViewsField;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;
/**
* @ViewsField("test_field")
* A test field handler.
*/
#[ViewsField("test_field")]
class FieldTest extends FieldPluginBase {