interface ConfigInstallerInterface

Same name in other branches
  1. 9 core/lib/Drupal/Core/Config/ConfigInstallerInterface.php \Drupal\Core\Config\ConfigInstallerInterface
  2. 8.9.x core/lib/Drupal/Core/Config/ConfigInstallerInterface.php \Drupal\Core\Config\ConfigInstallerInterface
  3. 11.x core/lib/Drupal/Core/Config/ConfigInstallerInterface.php \Drupal\Core\Config\ConfigInstallerInterface

Interface for classes that install config.

Hierarchy

Expanded class hierarchy of ConfigInstallerInterface

All classes that implement ConfigInstallerInterface

1 file declares its use of ConfigInstallerInterface
ThemeInstaller.php in core/lib/Drupal/Core/Extension/ThemeInstaller.php

File

core/lib/Drupal/Core/Config/ConfigInstallerInterface.php, line 8

Namespace

Drupal\Core\Config
View source
interface ConfigInstallerInterface {
    
    /**
     * Installs the default configuration of a given extension.
     *
     * When an extension is installed, it searches all the default configuration
     * directories for all other extensions to locate any configuration with its
     * name prefix. For example, the Node module provides the frontpage view as a
     * default configuration file:
     * core/modules/node/config/optional/views.view.frontpage.yml
     * When the Views module is installed after the Node module is already
     * enabled, the frontpage view will be installed.
     *
     * Additionally, the default configuration directory for the extension being
     * installed is searched to discover if it contains default configuration
     * that is owned by other enabled extensions. So, the frontpage view will also
     * be installed when the Node module is installed after Views.
     *
     * @param string $type
     *   The extension type; e.g., 'module' or 'theme'.
     * @param string $name
     *   The name of the module or theme to install default configuration for.
     *
     * @see \Drupal\Core\Config\ExtensionInstallStorage
     */
    public function installDefaultConfig($type, $name);
    
    /**
     * Installs optional configuration.
     *
     * Optional configuration is only installed if:
     * - the configuration does not exist already.
     * - it's a configuration entity.
     * - its dependencies can be met.
     *
     * @param \Drupal\Core\Config\StorageInterface|null $storage
     *   (optional) The configuration storage to search for optional
     *   configuration. If not provided, all enabled extension's optional
     *   configuration directories including the install profile's will be
     *   searched.
     * @param array $dependency
     *   (optional) If set, ensures that the configuration being installed has
     *   this dependency. The format is dependency type as the key ('module',
     *   'theme', or 'config') and the dependency name as the value
     *   ('node', 'olivero', 'views.view.frontpage').
     */
    public function installOptionalConfig(?StorageInterface $storage = NULL, $dependency = []);
    
    /**
     * Installs all default configuration in the specified collection.
     *
     * The function is useful if the site needs to respond to an event that has
     * just created another collection and we need to check all the installed
     * extensions for any matching configuration. For example, if a language has
     * just been created.
     *
     * @param string $collection
     *   The configuration collection.
     */
    public function installCollectionDefaultConfig($collection);
    
    /**
     * Sets the configuration storage that provides the default configuration.
     *
     * @param \Drupal\Core\Config\StorageInterface $storage
     *   The storage.
     *
     * @return $this
     */
    public function setSourceStorage(StorageInterface $storage);
    
    /**
     * Gets the configuration storage that provides the default configuration.
     *
     * @return \Drupal\Core\Config\StorageInterface|null
     *   The configuration storage that provides the default configuration.
     *   Returns null if the source storage has not been set.
     */
    public function getSourceStorage();
    
    /**
     * Sets the status of the isSyncing flag.
     *
     * @param bool $status
     *   The status of the sync flag.
     *
     * @return $this
     */
    public function setSyncing($status);
    
    /**
     * Gets the syncing state.
     *
     * @return bool
     *   Returns TRUE is syncing flag set.
     */
    public function isSyncing();
    
    /**
     * Checks the configuration that will be installed for an extension.
     *
     * @param string $type
     *   Type of extension to install.
     * @param string $name
     *   Name of extension to install.
     *
     * @throws \Drupal\Core\Config\UnmetDependenciesException
     * @throws \Drupal\Core\Config\PreExistingConfigException
     */
    public function checkConfigurationToInstall($type, $name);

}

Members

Title Sort descending Modifiers Object type Summary
ConfigInstallerInterface::checkConfigurationToInstall public function Checks the configuration that will be installed for an extension.
ConfigInstallerInterface::getSourceStorage public function Gets the configuration storage that provides the default configuration.
ConfigInstallerInterface::installCollectionDefaultConfig public function Installs all default configuration in the specified collection.
ConfigInstallerInterface::installDefaultConfig public function Installs the default configuration of a given extension.
ConfigInstallerInterface::installOptionalConfig public function Installs optional configuration.
ConfigInstallerInterface::isSyncing public function Gets the syncing state.
ConfigInstallerInterface::setSourceStorage public function Sets the configuration storage that provides the default configuration.
ConfigInstallerInterface::setSyncing public function Sets the status of the isSyncing flag.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.