class UnmetDependenciesException

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Config/UnmetDependenciesException.php \Drupal\Core\Config\UnmetDependenciesException
  2. 8.9.x core/lib/Drupal/Core/Config/UnmetDependenciesException.php \Drupal\Core\Config\UnmetDependenciesException
  3. 10 core/lib/Drupal/Core/Config/UnmetDependenciesException.php \Drupal\Core\Config\UnmetDependenciesException

An exception thrown if configuration has unmet dependencies.

Hierarchy

Expanded class hierarchy of UnmetDependenciesException

5 files declare their use of UnmetDependenciesException
ConfigInstallTest.php in core/tests/Drupal/KernelTests/Core/Config/ConfigInstallTest.php
ModulesListConfirmForm.php in core/modules/system/src/Form/ModulesListConfirmForm.php
ModulesListForm.php in core/modules/system/src/Form/ModulesListForm.php
ThemeController.php in core/modules/system/src/Controller/ThemeController.php
ThemeExperimentalConfirmForm.php in core/modules/system/src/Form/ThemeExperimentalConfirmForm.php

File

core/lib/Drupal/Core/Config/UnmetDependenciesException.php, line 11

Namespace

Drupal\Core\Config
View source
class UnmetDependenciesException extends ConfigException {
    
    /**
     * A list of configuration objects that have unmet dependencies.
     *
     * The list is keyed by the config object name, and the value is an array of
     * the missing dependencies:
     *
     * @code
     *
     * self::configObjects = [
     *   config_object_name => [
     *     'missing_dependency_1',
     *     'missing_dependency_2',
     *   ]
     * ];
     *
     * @endcode
     *
     * @var array
     */
    protected $configObjects = [];
    
    /**
     * The name of the extension that is being installed.
     *
     * @var string
     */
    protected $extension;
    
    /**
     * Gets the list of configuration objects that have unmet dependencies.
     *
     * @return array
     *   A list of configuration objects that have unmet dependencies, keyed by
     *   object name, with the value being a list of the unmet dependencies.
     */
    public function getConfigObjects() {
        return $this->configObjects;
    }
    
    /**
     * Gets the name of the extension that is being installed.
     *
     * @return string
     *   The name of the extension that is being installed.
     */
    public function getExtension() {
        return $this->extension;
    }
    
    /**
     * Gets a translated message from the exception.
     *
     * @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
     *   The string translation service.
     * @param string $extension
     *   The name of the extension that is being installed.
     *
     * @return string
     */
    public function getTranslatedMessage(TranslationInterface $string_translation, $extension) {
        return $string_translation->translate('Unable to install %extension due to unmet dependencies: %config_names', [
            '%config_names' => static::formatConfigObjectList($this->configObjects),
            '%extension' => $extension,
        ]);
    }
    
    /**
     * Creates an exception for an extension and a list of configuration objects.
     *
     * @param $extension
     *   The name of the extension that is being installed.
     * @param array $config_objects
     *   A list of configuration keyed by configuration name, with unmet
     *   dependencies as the value.
     *
     * @return \Drupal\Core\Config\PreExistingConfigException
     */
    public static function create($extension, array $config_objects) {
        $message = new FormattableMarkup('Configuration objects provided by %extension have unmet dependencies: %config_names', [
            '%config_names' => static::formatConfigObjectList($config_objects),
            '%extension' => $extension,
        ]);
        $e = new static($message);
        $e->configObjects = $config_objects;
        $e->extension = $extension;
        return $e;
    }
    
    /**
     * Formats a list of configuration objects.
     *
     * @param array $config_objects
     *   A list of configuration object names that have unmet dependencies.
     *
     * @return string
     *   The imploded config_objects, formatted in an easy to read string.
     */
    protected static function formatConfigObjectList(array $config_objects) {
        $list = [];
        foreach ($config_objects as $config_object => $missing_dependencies) {
            $list[] = $config_object . ' (' . implode(', ', $missing_dependencies) . ')';
        }
        return implode(', ', $list);
    }

}

Members

Title Sort descending Modifiers Object type Summary
UnmetDependenciesException::$configObjects protected property A list of configuration objects that have unmet dependencies.
UnmetDependenciesException::$extension protected property The name of the extension that is being installed.
UnmetDependenciesException::create public static function Creates an exception for an extension and a list of configuration objects.
UnmetDependenciesException::formatConfigObjectList protected static function Formats a list of configuration objects.
UnmetDependenciesException::getConfigObjects public function Gets the list of configuration objects that have unmet dependencies.
UnmetDependenciesException::getExtension public function Gets the name of the extension that is being installed.
UnmetDependenciesException::getTranslatedMessage public function Gets a translated message from the exception.

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