Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. MergeExtensionConfigurationPass.php

function MergeExtensionConfigurationParameterBag::freezeAfterProcessing

File

vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php, line 117

Class

MergeExtensionConfigurationParameterBag
@internal

Namespace

Symfony\Component\DependencyInjection\Compiler

Code

public function freezeAfterProcessing(Extension $extension, ContainerBuilder $container) : void {
    if (!($config = $extension->getProcessedConfigs())) {
        // Extension::processConfiguration() wasn't called, we cannot know how configs were merged
        return;
    }
    $this->processedEnvPlaceholders = [];
    // serialize config and container to catch env vars nested in object graphs
    $config = serialize($config) . serialize($container->getDefinitions()) . serialize($container->getAliases()) . serialize($container->getParameterBag()
        ->all());
    if (false === stripos($config, 'env_')) {
        return;
    }
    preg_match_all('/env_[a-f0-9]{16}_\\w+_[a-f0-9]{32}/Ui', $config, $matches);
    $usedPlaceholders = array_flip($matches[0]);
    foreach (parent::getEnvPlaceholders() as $env => $placeholders) {
        foreach ($placeholders as $placeholder) {
            if (isset($usedPlaceholders[$placeholder])) {
                $this->processedEnvPlaceholders[$env] = $placeholders;
                break;
            }
        }
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal