[FrameworkBundle] Add inlined env vars into debug:container output #49336
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently environment variables that are consumed during build process are not visible to
debug:container
command. It took a long time to realize changes to runtime environment variables wont have any effect because those vars are inlined during build process of the DI container.This MR shows all env vars that any extension resolved during compilation of the container.
Example:
Given the following config:
With empty cache directory, 1st time we run the cli command, it'll build the container:
Now, if we run the command with different
LOG_LEVEL
value, we see that the inlined value stays the same.This would mean that Monolog uses
LOG_LEVEL=notice
while the services where$logLevel
is injected would receivedebug
value.And with more verbose
--env-var
flagIn my opinion better solution would be to deny the usage of
resolveEnvPlaceholders
before container is built but that would of course break backwards compatibility.