class LenientConfigSchemaChecker

Listens to the config save event and warns about invalid schema.

Hierarchy

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
config.schema_checker in sites/development.services.yml
Drupal\Core\Config\Development\LenientConfigSchemaChecker
config.schema_checker in core/assets/scaffold/files/development.services.yml
Drupal\Core\Config\Development\LenientConfigSchemaChecker

File

core/lib/Drupal/Core/Config/Development/LenientConfigSchemaChecker.php, line 14

Namespace

Drupal\Core\Config\Development
View 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.