From 4ae7f8542f77e4eb063509e31a97d54860110a66 Mon Sep 17 00:00:00 2001 From: catch Date: Fri, 1 Mar 2024 14:26:17 +0000 Subject: [PATCH] Issue #3420985 by godotislate, larowlan, smustgrave, mstrelan: Convert Archiver discovery to attributes --- .../Core/Archiver/ArchiverInterface.php | 2 +- .../Drupal/Core/Archiver/ArchiverManager.php | 5 ++- .../Core/Archiver/Attribute/Archiver.php | 44 +++++++++++++++++++ .../system/src/Plugin/Archiver/Tar.php | 15 ++++--- .../system/src/Plugin/Archiver/Zip.php | 15 ++++--- .../Plugin/Archiver/UpdateTestArchiver.php | 14 +++--- 6 files changed, 72 insertions(+), 23 deletions(-) create mode 100644 core/lib/Drupal/Core/Archiver/Attribute/Archiver.php diff --git a/core/lib/Drupal/Core/Archiver/ArchiverInterface.php b/core/lib/Drupal/Core/Archiver/ArchiverInterface.php index 979b93ac80b..075c6f1da01 100644 --- a/core/lib/Drupal/Core/Archiver/ArchiverInterface.php +++ b/core/lib/Drupal/Core/Archiver/ArchiverInterface.php @@ -6,7 +6,7 @@ namespace Drupal\Core\Archiver; * Defines the common interface for all Archiver classes. * * @see \Drupal\Core\Archiver\ArchiverManager - * @see \Drupal\Core\Archiver\Annotation\Archiver + * @see \Drupal\Core\Archiver\Attribute\Archiver * @see plugin_api */ interface ArchiverInterface { diff --git a/core/lib/Drupal/Core/Archiver/ArchiverManager.php b/core/lib/Drupal/Core/Archiver/ArchiverManager.php index 08a6308a3ed..c33350f1eb9 100644 --- a/core/lib/Drupal/Core/Archiver/ArchiverManager.php +++ b/core/lib/Drupal/Core/Archiver/ArchiverManager.php @@ -3,6 +3,7 @@ namespace Drupal\Core\Archiver; use Drupal\Component\Plugin\Factory\DefaultFactory; +use Drupal\Core\Archiver\Attribute\Archiver; use Drupal\Core\Cache\CacheBackendInterface; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\File\FileSystemInterface; @@ -11,7 +12,7 @@ use Drupal\Core\Plugin\DefaultPluginManager; /** * Provides an Archiver plugin manager. * - * @see \Drupal\Core\Archiver\Annotation\Archiver + * @see \Drupal\Core\Archiver\Attribute\Archiver * @see \Drupal\Core\Archiver\ArchiverInterface * @see plugin_api */ @@ -38,7 +39,7 @@ class ArchiverManager extends DefaultPluginManager { * The file handler. */ public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, FileSystemInterface $file_system) { - parent::__construct('Plugin/Archiver', $namespaces, $module_handler, 'Drupal\Core\Archiver\ArchiverInterface', 'Drupal\Core\Archiver\Annotation\Archiver'); + parent::__construct('Plugin/Archiver', $namespaces, $module_handler, 'Drupal\Core\Archiver\ArchiverInterface', Archiver::class, 'Drupal\Core\Archiver\Annotation\Archiver'); $this->alterInfo('archiver_info'); $this->setCacheBackend($cache_backend, 'archiver_info_plugins'); $this->fileSystem = $file_system; diff --git a/core/lib/Drupal/Core/Archiver/Attribute/Archiver.php b/core/lib/Drupal/Core/Archiver/Attribute/Archiver.php new file mode 100644 index 00000000000..438ba18f831 --- /dev/null +++ b/core/lib/Drupal/Core/Archiver/Attribute/Archiver.php @@ -0,0 +1,44 @@ +