将参数从 .env.dist 复制到 .env

Copying parameters from .env.dist to .env

我正在将一个项目从 Symfony 2.3 升级到 Symfony 3.4,我对 .env 和 .env.dist 文件之间的关系有点困惑。据我了解,它们之间的关系与Symfony2中parameters.yml和parameters.yml.dist之间的关系相同。但在较旧的 Symfony 中,parameters.yml 会在提示用户使用 parameters.yml.dist 中的参数作为默认值后,在 composer update 期间自动更新。另一方面,在 Symfony3 文档中,我找不到任何关于自动复制参数的参考。 .env.dist 中的参数是否总是需要手动复制到 .env 中?如果有一种方法可以自动复制它们,是否有类似于 incenteev/composer-parameter-handler 的软件包可以帮助管理参数?

您不再需要 incenteev/composer-parameter-handler 之类的东西。您可以在配置中访问 ENV 变量。所以你直接在你的配置中使用 ENV 变量,如下所示:

doctrine:
    dbal:
        default_connection:   default
        connections:
            default:
                dbname:   '%env(SYMFONY_DATABASE_NAME)%'
                user:     '%env(SYMFONY_DATABASE_USER)%'
                password: '%env(SYMFONY_DATABASE_PASSWORD)%'

.env 文件只允许您添加环境变量。 Symfony 明确只建议在非生产环境中使用 .env。