From f4206ea34b4d858e240c7030ad3e64cba4c2fbb9 Mon Sep 17 00:00:00 2001 From: Alexander Schranz Date: Fri, 25 Nov 2022 01:33:36 +0100 Subject: [PATCH] Prototype to convert comments --- packages/config-transformer/src/ConfigLoader.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/config-transformer/src/ConfigLoader.php b/packages/config-transformer/src/ConfigLoader.php index 376fc2bf1da..427919beb24 100644 --- a/packages/config-transformer/src/ConfigLoader.php +++ b/packages/config-transformer/src/ConfigLoader.php @@ -39,6 +39,12 @@ final class ConfigLoader */ private const UNQUOTED_PARAMETER_REGEX = '#(\w+:\s+)(\%(.*?)%)(.*?)?$#m'; + /** + * @see https://regex101.com/r/I2wiC9/2 + * @var string + */ + private const COMMENT_REGEX = '#^(\s+)?\# (.*)#m'; + public function __construct( private IdAwareXmlFileLoaderFactory $idAwareXmlFileLoaderFactory, private SmartFileSystem $smartFileSystem, @@ -64,6 +70,13 @@ public function createAndLoadContainerBuilderFromFileInfo( static fn (array $match): string => $match[1] . '"' . $match[2] . ($match[4] ?? '') . '"' ); + // fake comment to keep them + $content = Strings::replace( + $content, + self::COMMENT_REGEX, + static fn ($match): string => $match[1] . '"%comment(' . $match[2] . ')%": null' + ); + if (in_array($smartFileInfo->getSuffix(), [Format::YML, Format::YAML], true)) { $content = Strings::replace( $content,