class LenientConfigSchemaChecker
Listens to the config save event and warns about invalid schema.
Hierarchy
- class \Drupal\Core\Config\Development\ConfigSchemaChecker implements \Symfony\Component\EventDispatcher\EventSubscriberInterface uses \Drupal\Core\Config\Schema\SchemaCheckTrait
- class \Drupal\Core\Config\Development\LenientConfigSchemaChecker extends \Drupal\Core\Config\Development\ConfigSchemaChecker
Expanded class hierarchy of LenientConfigSchemaChecker
2 string references to 'LenientConfigSchemaChecker'
- development.services.yml in sites/
development.services.yml - sites/development.services.yml
- development.services.yml in core/
assets/ scaffold/ files/ development.services.yml - core/assets/scaffold/files/development.services.yml
2 services use LenientConfigSchemaChecker
File
-
core/
lib/ Drupal/ Core/ Config/ Development/ LenientConfigSchemaChecker.php, line 14
Namespace
Drupal\Core\Config\DevelopmentView source
class LenientConfigSchemaChecker extends ConfigSchemaChecker {
/**
* Constructs the ConfigSchemaChecker object.
*
* @param \Drupal\Core\Config\TypedConfigManagerInterface $typed_manager
* The typed config manager.
* @param \Drupal\Core\Messenger\MessengerInterface $messenger
* The messenger service to display the warning.
* @param \Psr\Log\LoggerInterface $logger
* The logger to save the warning.
* @param string[] $exclude
* An array of config object names that are excluded from schema checking.
*/
public function __construct(TypedConfigManagerInterface $typed_manager, MessengerInterface $messenger, LoggerInterface $logger, array $exclude = []) {
parent::__construct($typed_manager, $exclude);
}
/**
* Checks that configuration complies with its schema on config save.
*
* @param \Drupal\Core\Config\ConfigCrudEvent $event
* The configuration event.
*/
public function onConfigSave(ConfigCrudEvent $event) : void {
try {
parent::onConfigSave($event);
} catch (SchemaIncompleteException $exception) {
$message = sprintf('%s. These errors mean there is configuration that does not comply with its schema. This is not a fatal error, but it is recommended to fix these issues. For more information on configuration schemas, check out <a href="%s">the documentation</a>.', $exception->getMessage(), 'https://www.drupal.org/docs/drupal-apis/configuration-api/configuration-schemametadata');
$this->messenger
->addWarning($message);
$this->logger
->warning($message);
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.