Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
bug #21607 Improve tracking of environment variables in the case of p…
…rivate services (tgalopin) This PR was merged into the 3.2 branch. Discussion ---------- Improve tracking of environment variables in the case of private services | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #21273 | License | MIT Recently, I stumbled upon an issue with environment variables that I had troubles to understand. Here it is: I have two environment variables, defined in my `parameters.yml` with a default value of empty: ``` yaml parameters: env(MAILJET_PUBLIC_KEY): '' env(MAILJET_PRIVATE_KEY): '' ``` I use these variables only in a private service: ``` xml <service id="app.mailjet.transport" class="AppBundle\Mailjet\MailjetApiTransport" public="false"> <argument type="service" id="csa_guzzle.client.mailjet_api"/> <argument>%env(MAILJET_PUBLIC_KEY)%</argument> <argument>%env(MAILJET_PRIVATE_KEY)%</argument> </service> ``` This private service is not used by any other service for the moment. As the service is private and not used by any other service, the `RemoveUnusedDefinitionsPass` removes it from the container. However, when the container dumper dumps the container, it checks if the environment variable was dumped. As the service is now gone, an expection is thrown (`EnvParameterException, Incompatible use of dynamic environment variables "MAILJET_PUBLIC_KEY", "MAILJET_PRIVATE_KEY" found in parameters.`). Commits ------- f380ba3 Improve tracking of environment variables in the case of private services
- Loading branch information