Since the introduction of the DotEnv component in Symfony 3.3, we’ve been
working hard to improve the experience of using env vars to configure Symfony
apps. In Symfony 4.2, we’ve added a new
loadForEnv() method to allow you
define different env vars per environment.
Instead of creating a single
.env file at your project’s root dir, you can
now create one or more env var files. The values for the env var are looked for
in the following order:
.env+ environment name +
.env.prod.local). These are the environment-specific settings overridden
locally on your machine.
.env.local. Used for overriding values on your local machine. This file is
loaded for all environments except
.env+ environment name (
are the files that define environment-specific settings. Useful for example to
override settings like the database connection for tests.
.env. Same file as used by current Symfony apps.
We’re working on a Symfony Flex recipe to bring this new feature into the full
Symfony framework (see symfony/recipes #466). Once merged, you’ll need to make
the following changes in your app:
.env(and commit it to the shared repository).
.env.local(and remove it from the shared repository).