Verified Commit eb382d27 authored by Dave Long's avatar Dave Long
Browse files

Issue #3485296 by bradjones1, longwave, alexpott: Regression: Deprecation of...

Issue #3485296 by bradjones1, longwave, alexpott: Regression: Deprecation of `yaml_parser_class` setting in 10.3 breaks sites < 11.0

(cherry picked from commit 4a8aaa4a)
parent 2a4aa020
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -49,6 +49,10 @@
%Drupal\\editor\\Form\\EditorImageDialog is deprecated in drupal:10.1.0 and is removed from drupal:11.0.0. There is no replacement. See https://www.drupal.org/node/3291493%
%Drupal\\editor\\Form\\EditorLinkDialog is deprecated in drupal:10.1.0 and is removed from drupal:11.0.0. There is no replacement. See https://www.drupal.org/node/3291493%

# In Drupal 10, skip deprecations for the "yaml_parser_class" setting.
# This is retained with a BC layer, but removed in Drupal 11.
%The "yaml_parser_class" setting is deprecated in drupal:10.3.0. This setting should be removed from the settings file, since its usage has been removed. See https://www.drupal.org/node/3415489.%

# Symfony 7.
%Method "Symfony\\Contracts\\Service\\ResetInterface::reset\(\)" might add "void" as a native return type declaration in the future. Do the same in implementation "Drupal\\Component\\DependencyInjection\\Container" now to avoid errors or add an explicit @return annotation to suppress this message.%

+2 −0
Original line number Diff line number Diff line
@@ -730,6 +730,8 @@
 * Provide a fully qualified class name here if you would like to provide an
 * alternate implementation YAML parser. The class must implement the
 * \Drupal\Component\Serialization\SerializationInterface interface.
 *
 * This setting is deprecated in Drupal 10.3 and removed in Drupal 11.
 */
# $settings['yaml_parser_class'] = NULL;

+19 −3
Original line number Diff line number Diff line
<?php
// phpcs:ignoreFile

namespace Drupal\Core\Serialization;

use Drupal\Core\Site\Settings;
use Drupal\Component\Serialization\Yaml as ComponentYaml;

/**
 * Provides a BC layer for Drupal\Core\Serialization\Yaml.
 * Provides a YAML serialization implementation.
 *
 * Allow settings to override the YAML implementation resolution.
 */
class_alias('\Drupal\Component\Serialization\Yaml', '\Drupal\Core\Serialization\Yaml');
class Yaml extends ComponentYaml {

  public static function decode($raw) {
    if ($class = Settings::get('yaml_parser_class')) {
      return $class::decode($raw);
    }

    return parent::decode($raw);
  }

}
+2 −0
Original line number Diff line number Diff line
@@ -730,6 +730,8 @@
 * Provide a fully qualified class name here if you would like to provide an
 * alternate implementation YAML parser. The class must implement the
 * \Drupal\Component\Serialization\SerializationInterface interface.
 *
 * This setting is deprecated in Drupal 10.3 and removed in Drupal 11.
 */
# $settings['yaml_parser_class'] = NULL;