Skip to content
Snippets Groups Projects
Commit ff81e709 authored by Chris Eastwood's avatar Chris Eastwood
Browse files

Store pattern hooks in an array keyed by hook name for faster lookup

parent 13e064b7
No related branches found
No related tags found
No related merge requests found
...@@ -26,6 +26,13 @@ class UiPatternsManager extends DefaultPluginManager implements PluginManagerInt ...@@ -26,6 +26,13 @@ class UiPatternsManager extends DefaultPluginManager implements PluginManagerInt
*/ */
protected $themeHandler; protected $themeHandler;
/**
* An array of pattern theme hooks for fast lookup.
*
* @var array
*/
protected $patternHooks;
/** /**
* UiPatternsManager constructor. * UiPatternsManager constructor.
*/ */
...@@ -85,10 +92,12 @@ class UiPatternsManager extends DefaultPluginManager implements PluginManagerInt ...@@ -85,10 +92,12 @@ class UiPatternsManager extends DefaultPluginManager implements PluginManagerInt
* {@inheritdoc} * {@inheritdoc}
*/ */
public function isPatternHook($hook) { public function isPatternHook($hook) {
$definitions = array_filter($this->getDefinitions(), function (PatternDefinition $definition) use ($hook) { if (empty($this->patternHooks)) {
return $definition->getThemeHook() == $hook; foreach ($this->getDefinitions() as $definition) {
}); $this->patternHooks[$definition->getThemeHook()] = $definition->getThemeHook();
return !empty($definitions); }
}
return !empty($this->patternHooks[$hook]);
} }
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment