class ConfigModuleOverridesEvent

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

Event object to allow configuration to be overridden by modules.

Hierarchy

  • class \Drupal\Component\EventDispatcher\Event extends \Symfony\Contracts\EventDispatcher\Event

Expanded class hierarchy of ConfigModuleOverridesEvent

File

core/lib/Drupal/Core/Config/ConfigModuleOverridesEvent.php, line 12

Namespace

Drupal\Core\Config
View source
class ConfigModuleOverridesEvent extends Event {
    
    /**
     * Configuration names.
     *
     * @var array
     */
    protected $names;
    
    /**
     * Configuration overrides.
     *
     * @var array
     */
    protected $overrides;
    
    /**
     * The Language object used to override configuration data.
     *
     * @var \Drupal\Core\Language\LanguageInterface
     */
    protected $language;
    
    /**
     * Constructs a configuration overrides event object.
     *
     * @param array $names
     *   A list of configuration names.
     * @param \Drupal\Core\Language\LanguageInterface $language
     *   (optional) The language for this configuration.
     */
    public function __construct(array $names, ?LanguageInterface $language = NULL) {
        $this->names = $names;
        $this->language = $language;
        $this->overrides = [];
    }
    
    /**
     * Gets configuration names.
     *
     * @return array
     *   The list of configuration names that can be overridden.
     */
    public function getNames() {
        return $this->names;
    }
    
    /**
     * Gets configuration language.
     *
     * @return \Drupal\Core\Language\LanguageInterface
     *   The configuration language object.
     */
    public function getLanguage() {
        return $this->language;
    }
    
    /**
     * Get configuration overrides.
     *
     * @return array
     *   The array of configuration overrides.
     */
    public function getOverrides() {
        return $this->overrides;
    }
    
    /**
     * Sets a configuration override for the given name.
     *
     * @param string $name
     *   The configuration object name to override.
     * @param array $values
     *   The values in the configuration object to override.
     *
     * @return $this
     */
    public function setOverride($name, array $values) {
        if (in_array($name, $this->names)) {
            if (isset($this->overrides[$name])) {
                // Existing overrides take precedence since these will have been added
                // by events with a higher priority.
                $this->overrides[$name] = NestedArray::mergeDeepArray([
                    $values,
                    $this->overrides[$name],
                ], TRUE);
            }
            else {
                $this->overrides[$name] = $values;
            }
        }
        return $this;
    }

}

Members

Title Sort descending Modifiers Object type Summary
ConfigModuleOverridesEvent::$language protected property The Language object used to override configuration data.
ConfigModuleOverridesEvent::$names protected property Configuration names.
ConfigModuleOverridesEvent::$overrides protected property Configuration overrides.
ConfigModuleOverridesEvent::getLanguage public function Gets configuration language.
ConfigModuleOverridesEvent::getNames public function Gets configuration names.
ConfigModuleOverridesEvent::getOverrides public function Get configuration overrides.
ConfigModuleOverridesEvent::setOverride public function Sets a configuration override for the given name.
ConfigModuleOverridesEvent::__construct public function Constructs a configuration overrides event object.

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