Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
CRAP | |
0.00% |
0 / 26 |
PreExistingConfigException | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
72 | |
0.00% |
0 / 26 |
getConfigObjects | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getExtension | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
create | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 11 |
|||
flattenConfigObjects | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 2 |
|||
anonymous function | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 5 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Config\PreExistingConfigException. | |
*/ | |
namespace Drupal\Core\Config; | |
use Drupal\Component\Utility\SafeMarkup; | |
/** | |
* An exception thrown if configuration with the same name already exists. | |
*/ | |
class PreExistingConfigException extends ConfigException { | |
/** | |
* A list of configuration objects that already exist in active configuration. | |
* | |
* @var array | |
*/ | |
protected $configObjects = []; | |
/** | |
* The name of the module that is being installed. | |
* | |
* @var string | |
*/ | |
protected $extension; | |
/** | |
* Gets the list of configuration objects that already exist. | |
* | |
* @return array | |
* A list of configuration objects that already exist in active | |
* configuration keyed by collection. | |
*/ | |
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; | |
} | |
/** | |
* 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 objects that already exist in active | |
* configuration, keyed by config collection. | |
* | |
* @return \Drupal\Core\Config\PreExistingConfigException | |
*/ | |
public static function create($extension, array $config_objects) { | |
$message = SafeMarkup::format('Configuration objects (@config_names) provided by @extension already exist in active configuration', | |
array( | |
'@config_names' => implode(', ', static::flattenConfigObjects($config_objects)), | |
'@extension' => $extension | |
) | |
); | |
$e = new static($message); | |
$e->configObjects = $config_objects; | |
$e->extension = $extension; | |
return $e; | |
} | |
/** | |
* Flattens the config object array to a single dimensional list. | |
* | |
* @param array $config_objects | |
* A list of configuration objects that already exist in active | |
* configuration, keyed by config collection. | |
* | |
* @return array | |
* A list of configuration objects that have been prefixed with their | |
* collection. | |
*/ | |
public static function flattenConfigObjects(array $config_objects) { | |
$flat_config_objects = array(); | |
foreach ($config_objects as $collection => $config_names) { | |
$config_names = array_map(function ($config_name) use ($collection) { | |
if ($collection != StorageInterface::DEFAULT_COLLECTION) { | |
$config_name = str_replace('.', DIRECTORY_SEPARATOR, $collection) . DIRECTORY_SEPARATOR . $config_name; | |
} | |
return $config_name; | |
}, $config_names); | |
$flat_config_objects = array_merge($flat_config_objects, $config_names); | |
} | |
return $flat_config_objects; | |
} | |
} |