Version 1
[yaffs-website] / web / core / lib / Drupal / Core / Theme / ThemeInitializationInterface.php
diff --git a/web/core/lib/Drupal/Core/Theme/ThemeInitializationInterface.php b/web/core/lib/Drupal/Core/Theme/ThemeInitializationInterface.php
new file mode 100644 (file)
index 0000000..6574717
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+
+namespace Drupal\Core\Theme;
+use Drupal\Core\Extension\Extension;
+
+/**
+ * Defines an interface which contain theme initialization logic.
+ */
+interface ThemeInitializationInterface {
+
+  /**
+   * Initializes a given theme.
+   *
+   * This loads the active theme, for example include its engine file.
+   *
+   * @param string $theme_name
+   *   The machine name of the theme.
+   *
+   * @return \Drupal\Core\Theme\ActiveTheme
+   *   An active theme object instance for the given theme.
+   */
+  public function initTheme($theme_name);
+
+  /**
+   * Builds an active theme object.
+   *
+   * @param string $theme_name
+   *   The machine name of the theme.
+   *
+   * @return \Drupal\Core\Theme\ActiveTheme
+   *   An active theme object instance for the given theme.
+   *
+   * @throws \Drupal\Core\Theme\MissingThemeDependencyException
+   *   Thrown when base theme for installed theme is not installed.
+   */
+  public function getActiveThemeByName($theme_name);
+
+  /**
+   * Loads a theme, so it is ready to be used.
+   *
+   * Loading a theme includes loading and initializing the engine,
+   * each base theme and its engines.
+   *
+   * @param \Drupal\Core\Theme\ActiveTheme $active_theme
+   *   The theme to load.
+   */
+  public function loadActiveTheme(ActiveTheme $active_theme);
+
+  /**
+   * Builds up the active theme object from extensions.
+   *
+   * @param \Drupal\Core\Extension\Extension $theme
+   *   The theme extension object.
+   * @param \Drupal\Core\Extension\Extension[] $base_themes
+   *   An array of extension objects of base theme and its bases. It is ordered
+   *   by 'next parent first', meaning the top level of the chain will be first.
+   *
+   * @return \Drupal\Core\Theme\ActiveTheme
+   *   The active theme instance for the passed in $theme.
+   */
+  public function getActiveTheme(Extension $theme, array $base_themes = []);
+
+}