Symfony4 - 选择退出"环境变量"功能并保留旧的parameters.yml文件?

the*_*uts 4 symfony symfony4

在Symfony4中,他们选择替换parameters.yml环境变量,如文档和迁移指南中所述:

将与基础架构相关的配置选项定义为环境变量.在开发期间,使用项目根目录下的.env文件来设置它们.

我真的不喜欢这种改变,我没有看到任何优势但只有缺点(例如我们需要重构应用程序,因为现在只允许标量值作为环境变量,你不能在其中托管不同的安装相同的环境等...)

所以我的问题是,是否有可能在Symfony4中保留旧的good parameters.yml文件?如何包含此文件并参考其参数,例如,在doctrine.yml和swiftmailer.yml中?

the*_*uts 5

完成后,它非常简单,它使您迁移到Symfony4变得更加容易.

只要移动parameters.ymlparameters.yml.distconfig/,并重新命名他们.yaml的一致性.

然后添加services.yaml:

imports:
    - { resource: parameters.yaml }
Run Code Online (Sandbox Code Playgroud)

然后一切都将保持不变,例如doctrine.yaml文件将是:

doctrine:
    dbal:
        driver: 'pdo_mysql'
        server_version: '5.7'
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        ...
Run Code Online (Sandbox Code Playgroud)

可选:添加https://github.com/Incenteev/ParameterHandler

  • 使用dot env也会泄露密码,如下所示:https://github.com/symfony/symfony/issues/26093 (2认同)