public function SchemaCheckTrait::checkConfigSchema in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Config/Schema/SchemaCheckTrait.php \Drupal\Core\Config\Schema\SchemaCheckTrait::checkConfigSchema()
Checks the TypedConfigManager has a valid schema for the configuration.
Parameters
\Drupal\Core\Config\TypedConfigManagerInterface $typed_config: The TypedConfigManager.
string $config_name: The configuration name.
array $config_data: The configuration data, assumed to be data for a top-level config object.
Return value
array|bool FALSE if no schema found. List of errors if any found. TRUE if fully valid.
3 calls to SchemaCheckTrait::checkConfigSchema()
- ConfigSchemaChecker::onConfigSave in core/
lib/ Drupal/ Core/ Config/ Testing/ ConfigSchemaChecker.php - Checks that configuration complies with its schema on config save.
- SchemaCheckTestTrait::assertConfigSchema in core/
modules/ config/ src/ Tests/ SchemaCheckTestTrait.php - Asserts the TypedConfigManager has a valid schema for the configuration.
- SchemaCheckTraitTest::testTrait in core/
modules/ config/ src/ Tests/ SchemaCheckTraitTest.php - Tests \Drupal\Core\Config\Schema\SchemaCheckTrait.
File
- core/
lib/ Drupal/ Core/ Config/ Schema/ SchemaCheckTrait.php, line 51 - Contains \Drupal\Core\Config\Schema\SchemaCheckTrait.
Class
- SchemaCheckTrait
- Provides a trait for checking configuration schema.
Namespace
Drupal\Core\Config\SchemaCode
public function checkConfigSchema(TypedConfigManagerInterface $typed_config, $config_name, $config_data) {
// We'd like to verify that the top-level type is either config_base,
// config_entity, or a derivative. The only thing we can really test though
// is that the schema supports having langcode in it. So add 'langcode' to
// the data if it doesn't already exist.
if (!isset($config_data['langcode'])) {
$config_data['langcode'] = 'en';
}
$this->configName = $config_name;
if (!$typed_config
->hasConfigSchema($config_name)) {
return FALSE;
}
$definition = $typed_config
->getDefinition($config_name);
$data_definition = $typed_config
->buildDataDefinition($definition, $config_data);
$this->schema = $typed_config
->create($data_definition, $config_data);
$errors = array();
foreach ($config_data as $key => $value) {
$errors = array_merge($errors, $this
->checkValue($key, $value));
}
if (empty($errors)) {
return TRUE;
}
return $errors;
}