From 202077000d84632f310e2b526c1cae785c1696c5 Mon Sep 17 00:00:00 2001 From: Antonio De Marco <antonio@nuvole.org> Date: Mon, 24 Apr 2017 17:41:49 +0200 Subject: [PATCH] #91: Add methods to interface and remove obsolete manager method. --- src/Plugin/PatternInterface.php | 20 ++++++++++++++++++++ src/UiPatternsManager.php | 17 +---------------- tests/src/Kernel/UiPatternsManagerTest.php | 6 +++--- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/Plugin/PatternInterface.php b/src/Plugin/PatternInterface.php index be8898a39..3658c4206 100644 --- a/src/Plugin/PatternInterface.php +++ b/src/Plugin/PatternInterface.php @@ -9,4 +9,24 @@ namespace Drupal\ui_patterns\Plugin; */ interface PatternInterface { + /** + * Get theme implementation for current pattern. + * + * @see ui_patterns_theme() + * + * @return array + * Theme implementation array. + */ + public function getThemeImplementation(); + + /** + * Get library definitions for current pattern. + * + * @see ui_patterns_library_info_build() + * + * @return array + * Library definitions array. + */ + public function getLibraryDefinitions(); + } diff --git a/src/UiPatternsManager.php b/src/UiPatternsManager.php index 5a9091ab6..254f8a259 100644 --- a/src/UiPatternsManager.php +++ b/src/UiPatternsManager.php @@ -37,20 +37,6 @@ class UiPatternsManager extends DefaultPluginManager implements PluginManagerInt $this->setCacheBackend($cache_backend, 'ui_patterns', ['ui_patterns']); } - /** - * Get pattern object. - * - * @param string $id - * Pattern ID. - * - * @return \Drupal\ui_patterns\Plugin\PatternBase - * Pattern object. - */ - public function getPattern($id) { - // @todo should we statically cache this? - return $this->getFactory()->createInstance($id); - } - /** * Get pattern objects. * @@ -58,10 +44,9 @@ class UiPatternsManager extends DefaultPluginManager implements PluginManagerInt * Pattern objects. */ public function getPatterns() { - // @todo should we statically cache this? $patterns = []; foreach ($this->getDefinitions() as $definition) { - $patterns[] = $this->getPattern($definition->id()); + $patterns[] = $this->getFactory()->createInstance($definition->id()); } return $patterns; } diff --git a/tests/src/Kernel/UiPatternsManagerTest.php b/tests/src/Kernel/UiPatternsManagerTest.php index 75023c3b2..f22b0c16b 100644 --- a/tests/src/Kernel/UiPatternsManagerTest.php +++ b/tests/src/Kernel/UiPatternsManagerTest.php @@ -20,10 +20,10 @@ class UiPatternsManagerTest extends AbstractUiPatternsTest { */ public function testGetPattern() { $manager = UiPatterns::getManager(); + $definitions = $manager->getDefinitions(); - foreach ($manager->getDefinitions() as $definition) { - $pattern = $manager->getPattern($definition->id()); - assert($pattern->getBaseId(), equals($definition->id())); + foreach ($manager->getPatterns() as $pattern) { + assert($pattern->getBaseId(), equals($definitions[$pattern->getPluginId()]->id())); } } -- GitLab