This PR was merged into the 3.2-dev branch.
Discussion
----------
[DI] Allow injecting ENV parameters at runtime using %env(MY_ENV_VAR)%
| Q | A
| ------------- | ---
| Branch? | master
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #10138, #7555, #16403, #18155
| License | MIT
| Doc PR | https://github.com/symfony/symfony-docs/pull/6918
This is an alternative approach to #18155 for injecting env vars into container configurations.
With this PR, anywhere parameters are allowed, one can use `%env(ENV_VAR)%` to inject a dynamic env var. Additionally, if one sets a value to such parameters in e.g. the `parameter.yml` file (`env(ENV_VAR): foo`), this value will be used as a default value when the env var is not defined. If no default value is specified, an `EnvVarNotFoundException` will be thrown at runtime.
Unlike previous attempts that also used parameters (#16403), the implementation is compatible with DI extensions: before being dumped, env vars are resolved to uniquely identifiable string placeholders that can get through DI extensions manipulations. When dumped, these unique placeholders are replaced by dynamic calls to a getEnv method..
ping @magnusnordlander @dzuelke @fabpot
Commits
-------
bac2132 [DI] Allow injecting ENV parameters at runtime using %env(MY_ENV_VAR)% syntax
* 2.8:
[Console] use ANSI escape sequences in ProgressBar overwrite method
[HttpKernel] Fix wrong number of arguments in call of ExceptionListener::logException()
[DependencyInjection] Remove YAML check in CrossCheckTest
[Process] Consistently use getProcess() in tests
[LDAP] Free the search result after a search to free memory
[DependencyInjection] fix phpDoc