You are here

public function GutenbergLibraryManager::getActiveThemeMergedDefinition in Gutenberg 8.2

Get the active theme merged definition.

Return value

array The merged theme definitions.

Overrides GutenbergLibraryManagerInterface::getActiveThemeMergedDefinition

File

src/GutenbergLibraryManager.php, line 242

Class

GutenbergLibraryManager
Provides the default .gutenberg.yml library plugin manager.

Namespace

Drupal\gutenberg

Code

public function getActiveThemeMergedDefinition() {
  if (isset($this->activeThemeMergedDefinition)) {
    return $this->activeThemeMergedDefinition;
  }
  $cid = $this->cacheKey . ':active_theme';
  if ($cache = $this->cacheBackend
    ->get($cid)) {
    return $this->activeThemeMergedDefinition = $cache->data;
  }

  // Specify the default definition.
  $definition = $this->defaults;
  foreach ($this
    ->getActiveThemeDefinitions() as $array) {
    foreach ($array as $key => $value) {
      if ($key === 'id' || $key === 'provider') {

        // Ignore irrelevant properties.
        continue;
      }
      if (isset($definition[$key]) && is_array($definition[$key]) && is_array($value)) {

        // Merge arrays.
        $definition[$key] = array_merge($definition[$key], $value);
      }
      else {
        $definition[$key] = $value;
      }
    }
  }
  $this->activeThemeMergedDefinition = $definition;
  $this->cacheBackend
    ->set($cid, $definition, Cache::PERMANENT, [
    'gutenberg',
  ]);
  return $this->activeThemeMergedDefinition;
}