diff --git a/src/Plugin/PatternInterface.php b/src/Plugin/PatternInterface.php index be8898a392f51d5e1085a1721dd33c166ac05857..3658c420638c380e1e674ef1381989443062ee88 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 5a9091ab631e88690fe954854202705bccd57e4f..254f8a25981bebf0bc50893637baf7044baeb691 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 75023c3b28cf2ec6e8db58152c264b2b570b510e..f22b0c16ba445d4e3f45ea0262bee22f9f26f16d 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())); } }