From d077f162378393614cb838f34a584aa15b90c52a Mon Sep 17 00:00:00 2001 From: Nathaniel Catchpole <catch@35733.no-reply.drupal.org> Date: Fri, 28 Feb 2014 10:47:37 +0000 Subject: [PATCH] Issue #2195571 by Les Lim: Add a dedicated @RestResource annotation class. --- .../Drupal/rest/Annotation/RestResource.php | 35 +++++++++++++++++++ .../Plugin/Type/ResourcePluginManager.php | 9 +++-- .../Plugin/rest/resource/DBLogResource.php | 2 +- .../Plugin/rest/resource/EntityResource.php | 2 +- 4 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 core/modules/rest/lib/Drupal/rest/Annotation/RestResource.php diff --git a/core/modules/rest/lib/Drupal/rest/Annotation/RestResource.php b/core/modules/rest/lib/Drupal/rest/Annotation/RestResource.php new file mode 100644 index 000000000000..c9ac9e910e79 --- /dev/null +++ b/core/modules/rest/lib/Drupal/rest/Annotation/RestResource.php @@ -0,0 +1,35 @@ +<?php + +/** + * @file + * Contains \Drupal\rest\Annotation\RestResource. + */ + +namespace Drupal\rest\Annotation; + +use \Drupal\Component\Annotation\Plugin; + +/** + * Defines a REST resource annotation object. + * + * @Annotation + */ +class RestResource extends Plugin { + + /** + * The resource plugin ID. + * + * @var string + */ + public $id; + + /** + * The human-readable name of the resource plugin. + * + * @ingroup plugin_translatable + * + * @var \Drupal\Core\Annotation\Translation + */ + public $label; + +} diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php b/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php index 0ad6b0fab9ca..6ff5a349c26b 100644 --- a/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php +++ b/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php @@ -9,9 +9,8 @@ use Drupal\Core\Cache\CacheBackendInterface; use Drupal\Core\Extension\ModuleHandlerInterface; -use Drupal\Core\Language\LanguageManager; +use Drupal\Core\Language\LanguageManagerInterface; use Drupal\Core\Plugin\DefaultPluginManager; -use Drupal\Core\Plugin\Discovery\CacheDecorator; /** * Manages discovery and instantiation of resource plugins. @@ -26,13 +25,13 @@ class ResourcePluginManager extends DefaultPluginManager { * keyed by the corresponding namespace to look for plugin implementations. * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend * Cache backend instance to use. - * @param \Drupal\Core\Language\LanguageManager $language_manager + * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager * The language manager. * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler * The module handler to invoke the alter hook with. */ - public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, LanguageManager $language_manager, ModuleHandlerInterface $module_handler) { - parent::__construct('Plugin/rest/resource', $namespaces); + public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, LanguageManagerInterface $language_manager, ModuleHandlerInterface $module_handler) { + parent::__construct('Plugin/rest/resource', $namespaces, 'Drupal\rest\Annotation\RestResource'); $this->setCacheBackend($cache_backend, $language_manager, 'rest_plugins'); $this->alterInfo($module_handler, 'rest_resource'); diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/DBLogResource.php b/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/DBLogResource.php index bd05a5aae573..57aaf8184d9a 100644 --- a/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/DBLogResource.php +++ b/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/DBLogResource.php @@ -15,7 +15,7 @@ /** * Provides a resource for database watchdog log entries. * - * @Plugin( + * @RestResource( * id = "dblog", * label = @Translation("Watchdog database log") * ) diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/EntityResource.php b/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/EntityResource.php index 53281e19e5d3..6cbb2823c530 100644 --- a/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/EntityResource.php +++ b/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/EntityResource.php @@ -19,7 +19,7 @@ /** * Represents entities as resources. * - * @Plugin( + * @RestResource( * id = "entity", * label = @Translation("Entity"), * serialization_class = "Drupal\Core\Entity\Entity", -- GitLab