From 5aaf92bb9311ea6ddda2779f2c8d615b179ab1b7 Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Thu, 21 Mar 2024 08:36:58 +0000 Subject: [PATCH] Issue #3426959: Convert ViewsArea plugin discovery to attributes --- .../src/Plugin/views/area/ListingEmpty.php | 4 ++-- .../node/src/Plugin/views/area/ListingEmpty.php | 4 ++-- core/modules/views/src/Attribute/ViewsArea.php | 17 +++++++++++++++++ .../src/Plugin/views/area/AreaPluginBase.php | 2 +- .../views/src/Plugin/views/area/Broken.php | 4 ++-- .../views/src/Plugin/views/area/DisplayLink.php | 4 ++-- .../views/src/Plugin/views/area/Entity.php | 4 ++-- .../src/Plugin/views/area/HTTPStatusCode.php | 4 ++-- .../views/src/Plugin/views/area/Messages.php | 5 +++-- .../views/src/Plugin/views/area/Result.php | 4 ++-- .../views/src/Plugin/views/area/Text.php | 4 ++-- .../views/src/Plugin/views/area/TextCustom.php | 4 ++-- .../views/src/Plugin/views/area/Title.php | 4 ++-- .../views/src/Plugin/views/area/View.php | 4 ++-- .../src/Plugin/views/area/TestExample.php | 4 ++-- 15 files changed, 45 insertions(+), 27 deletions(-) create mode 100644 core/modules/views/src/Attribute/ViewsArea.php diff --git a/core/modules/block_content/src/Plugin/views/area/ListingEmpty.php b/core/modules/block_content/src/Plugin/views/area/ListingEmpty.php index 545dfb0bdeed..b4ee4737e19b 100644 --- a/core/modules/block_content/src/Plugin/views/area/ListingEmpty.php +++ b/core/modules/block_content/src/Plugin/views/area/ListingEmpty.php @@ -5,6 +5,7 @@ use Drupal\Core\Access\AccessManagerInterface; use Drupal\Core\Session\AccountInterface; use Drupal\Core\Url; +use Drupal\views\Attribute\ViewsArea; use Drupal\views\Plugin\views\area\AreaPluginBase; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -12,9 +13,8 @@ * Defines an area plugin to display a block add link. * * @ingroup views_area_handlers - * - * @ViewsArea("block_content_listing_empty") */ +#[ViewsArea("block_content_listing_empty")] class ListingEmpty extends AreaPluginBase { /** diff --git a/core/modules/node/src/Plugin/views/area/ListingEmpty.php b/core/modules/node/src/Plugin/views/area/ListingEmpty.php index 08e1d272232e..ab50224976e5 100644 --- a/core/modules/node/src/Plugin/views/area/ListingEmpty.php +++ b/core/modules/node/src/Plugin/views/area/ListingEmpty.php @@ -4,6 +4,7 @@ use Drupal\Core\Access\AccessManagerInterface; use Drupal\Core\Url; +use Drupal\views\Attribute\ViewsArea; use Drupal\views\Plugin\views\area\AreaPluginBase; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -11,9 +12,8 @@ * Defines an area plugin to display a node/add link. * * @ingroup views_area_handlers - * - * @ViewsArea("node_listing_empty") */ +#[ViewsArea("node_listing_empty")] class ListingEmpty extends AreaPluginBase { /** diff --git a/core/modules/views/src/Attribute/ViewsArea.php b/core/modules/views/src/Attribute/ViewsArea.php new file mode 100644 index 000000000000..d0495eee67d6 --- /dev/null +++ b/core/modules/views/src/Attribute/ViewsArea.php @@ -0,0 +1,17 @@ +<?php + +namespace Drupal\views\Attribute; + +use Drupal\Component\Plugin\Attribute\PluginID; + +/** + * Defines a Plugin attribute object for views area handlers. + * + * @see \Drupal\views\Plugin\views\area\AreaPluginBase + * + * @ingroup views_area_handlers + */ +#[\Attribute(\Attribute::TARGET_CLASS)] +class ViewsArea extends PluginID { + +} diff --git a/core/modules/views/src/Plugin/views/area/AreaPluginBase.php b/core/modules/views/src/Plugin/views/area/AreaPluginBase.php index a1a9ccf87a31..dda6daf883ad 100644 --- a/core/modules/views/src/Plugin/views/area/AreaPluginBase.php +++ b/core/modules/views/src/Plugin/views/area/AreaPluginBase.php @@ -13,7 +13,7 @@ * Plugins governing areas of views, such as header, footer, and empty text. * * Area handler plugins extend \Drupal\views\Plugin\views\area\AreaPluginBase. - * They must be annotated with \Drupal\views\Annotation\ViewsArea annotation, + * They must be attributed with \Drupal\views\Attribute\ViewsArea attribute, * and they must be in namespace directory Plugin\views\area. * * @ingroup views_plugins diff --git a/core/modules/views/src/Plugin/views/area/Broken.php b/core/modules/views/src/Plugin/views/area/Broken.php index 7bd6cdbd83ff..91df26e1901f 100644 --- a/core/modules/views/src/Plugin/views/area/Broken.php +++ b/core/modules/views/src/Plugin/views/area/Broken.php @@ -2,15 +2,15 @@ namespace Drupal\views\Plugin\views\area; +use Drupal\views\Attribute\ViewsArea; use Drupal\views\Plugin\views\BrokenHandlerTrait; /** * A special handler to take the place of missing or broken handlers. * * @ingroup views_area_handlers - * - * @ViewsArea("broken") */ +#[ViewsArea("broken")] class Broken extends AreaPluginBase { use BrokenHandlerTrait; diff --git a/core/modules/views/src/Plugin/views/area/DisplayLink.php b/core/modules/views/src/Plugin/views/area/DisplayLink.php index 6167edf5693b..6568445d9ee0 100644 --- a/core/modules/views/src/Plugin/views/area/DisplayLink.php +++ b/core/modules/views/src/Plugin/views/area/DisplayLink.php @@ -6,15 +6,15 @@ use Drupal\Core\EventSubscriber\MainContentViewSubscriber; use Drupal\Core\Form\FormBuilderInterface; use Drupal\Core\Form\FormStateInterface; +use Drupal\views\Attribute\ViewsArea; use Drupal\views\Plugin\views\display\PathPluginBase; /** * Views area display_link handler. * * @ingroup views_area_handlers - * - * @ViewsArea("display_link") */ +#[ViewsArea("display_link")] class DisplayLink extends AreaPluginBase { /** diff --git a/core/modules/views/src/Plugin/views/area/Entity.php b/core/modules/views/src/Plugin/views/area/Entity.php index 221fb44ab27c..bde1ea4684f0 100644 --- a/core/modules/views/src/Plugin/views/area/Entity.php +++ b/core/modules/views/src/Plugin/views/area/Entity.php @@ -6,6 +6,7 @@ use Drupal\Core\Entity\EntityRepositoryInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Form\FormStateInterface; +use Drupal\views\Attribute\ViewsArea; use Drupal\views\Plugin\views\display\DisplayPluginBase; use Drupal\views\ViewExecutable; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -14,9 +15,8 @@ * Provides an area handler which renders an entity in a certain view mode. * * @ingroup views_area_handlers - * - * @ViewsArea("entity") */ +#[ViewsArea("entity")] class Entity extends TokenizeAreaPluginBase { /** diff --git a/core/modules/views/src/Plugin/views/area/HTTPStatusCode.php b/core/modules/views/src/Plugin/views/area/HTTPStatusCode.php index 5d3f42adf2a4..e41b87aa028f 100644 --- a/core/modules/views/src/Plugin/views/area/HTTPStatusCode.php +++ b/core/modules/views/src/Plugin/views/area/HTTPStatusCode.php @@ -3,15 +3,15 @@ namespace Drupal\views\Plugin\views\area; use Drupal\Core\Form\FormStateInterface; +use Drupal\views\Attribute\ViewsArea; use Symfony\Component\HttpFoundation\Response; /** * Alter the HTTP response status code used by the view. * * @ingroup views_area_handlers - * - * @ViewsArea("http_status_code") */ +#[ViewsArea("http_status_code")] class HTTPStatusCode extends AreaPluginBase { /** diff --git a/core/modules/views/src/Plugin/views/area/Messages.php b/core/modules/views/src/Plugin/views/area/Messages.php index c26b995ed388..0d3f434a2bd6 100644 --- a/core/modules/views/src/Plugin/views/area/Messages.php +++ b/core/modules/views/src/Plugin/views/area/Messages.php @@ -2,13 +2,14 @@ namespace Drupal\views\Plugin\views\area; +use Drupal\views\Attribute\ViewsArea; + /** * Provides an area for messages. * * @ingroup views_area_handlers - * - * @ViewsArea("messages") */ +#[ViewsArea("messages")] class Messages extends AreaPluginBase { /** diff --git a/core/modules/views/src/Plugin/views/area/Result.php b/core/modules/views/src/Plugin/views/area/Result.php index 6405a9bf4320..cd5c3179863a 100644 --- a/core/modules/views/src/Plugin/views/area/Result.php +++ b/core/modules/views/src/Plugin/views/area/Result.php @@ -4,15 +4,15 @@ use Drupal\Component\Utility\Html; use Drupal\Core\Form\FormStateInterface; +use Drupal\views\Attribute\ViewsArea; use Drupal\views\Plugin\views\style\DefaultSummary; /** * Views area handler to display some configurable result summary. * * @ingroup views_area_handlers - * - * @ViewsArea("result") */ +#[ViewsArea("result")] class Result extends AreaPluginBase { /** diff --git a/core/modules/views/src/Plugin/views/area/Text.php b/core/modules/views/src/Plugin/views/area/Text.php index d9751b0294da..f37c7eb8b3aa 100644 --- a/core/modules/views/src/Plugin/views/area/Text.php +++ b/core/modules/views/src/Plugin/views/area/Text.php @@ -3,14 +3,14 @@ namespace Drupal\views\Plugin\views\area; use Drupal\Core\Form\FormStateInterface; +use Drupal\views\Attribute\ViewsArea; /** * Views area text handler. * * @ingroup views_area_handlers - * - * @ViewsArea("text") */ +#[ViewsArea("text")] class Text extends TokenizeAreaPluginBase { /** diff --git a/core/modules/views/src/Plugin/views/area/TextCustom.php b/core/modules/views/src/Plugin/views/area/TextCustom.php index 190210280ab9..25f9954d2bbd 100644 --- a/core/modules/views/src/Plugin/views/area/TextCustom.php +++ b/core/modules/views/src/Plugin/views/area/TextCustom.php @@ -4,14 +4,14 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Component\Utility\Xss; +use Drupal\views\Attribute\ViewsArea; /** * Views area text handler. * * @ingroup views_area_handlers - * - * @ViewsArea("text_custom") */ +#[ViewsArea("text_custom")] class TextCustom extends TokenizeAreaPluginBase { /** diff --git a/core/modules/views/src/Plugin/views/area/Title.php b/core/modules/views/src/Plugin/views/area/Title.php index d6139e0a104b..1e57273b4120 100644 --- a/core/modules/views/src/Plugin/views/area/Title.php +++ b/core/modules/views/src/Plugin/views/area/Title.php @@ -3,14 +3,14 @@ namespace Drupal\views\Plugin\views\area; use Drupal\Core\Form\FormStateInterface; +use Drupal\views\Attribute\ViewsArea; /** * Views area title override handler. * * @ingroup views_area_handlers - * - * @ViewsArea("title") */ +#[ViewsArea("title")] class Title extends AreaPluginBase { /** diff --git a/core/modules/views/src/Plugin/views/area/View.php b/core/modules/views/src/Plugin/views/area/View.php index 6dae7802f705..e9956063d30d 100644 --- a/core/modules/views/src/Plugin/views/area/View.php +++ b/core/modules/views/src/Plugin/views/area/View.php @@ -4,6 +4,7 @@ use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Form\FormStateInterface; +use Drupal\views\Attribute\ViewsArea; use Drupal\views\Views; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -11,9 +12,8 @@ * Views area handlers. Insert a view inside of an area. * * @ingroup views_area_handlers - * - * @ViewsArea("view") */ +#[ViewsArea("view")] class View extends AreaPluginBase { /** diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/area/TestExample.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/area/TestExample.php index 74818e8bb31d..917fa0f8ccda 100644 --- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/area/TestExample.php +++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/area/TestExample.php @@ -4,15 +4,15 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Session\AccountInterface; +use Drupal\views\Attribute\ViewsArea; use Drupal\views\Plugin\views\area\AreaPluginBase; /** * Test area plugin. * * @see \Drupal\views\Tests\Handler\AreaTest - * - * @ViewsArea("test_example") */ +#[ViewsArea("test_example")] class TestExample extends AreaPluginBase { /** -- GitLab