【问题标题】:Symfony 4: how to use two different environments in my local serverSymfony 4:如何在我的本地服务器中使用两种不同的环境
【发布时间】:2018-06-07 06:26:15
【问题描述】:

我最近开始使用 Symfony 4。

在开发过程中,我喜欢有两种不同的环境:一种用于开发(使用我们在固定装置上拥有的一些虚假数据浏览网站),另一种用于测试,我在每次测试时执行重置数据库的行为测试。

在以前的 symfony 版本中,我只有两个不同的数据库:mysite_dev 和 mysite_test 以及两个具有正确数据库配置的参数文件(parameters_dev.yml 和 parameters_test.yml)。

但是对于 Symfony 4 和 .env 配置文件,我看不到这样做的方式。我看不到任何拥有两组 ddbb 参数并且能够运行 php bin/console 原则:schema:update --env=test 或 php bin/console 原则:schema:update --env=dev 的方式。

有什么想法吗?谢谢!

【问题讨论】:

    标签: php symfony development-environment


    【解决方案1】:

    在你的配置中使用不同的 url 变量怎么样?

    # config/packages/dev/doctrine.yaml
    doctrine:
        dbal:
            url: '%env(resolve:DATABASE_URL_DEV)%'
    
    # config/packages/test/doctrine.yaml
    doctrine:
        dbal:
            url: '%env(resolve:DATABASE_URL_TEST)%'
    

    还可以考虑默认配置文件中的此注释

    parameters:
        # Adds a fallback DATABASE_URL if the env var is not set.
        # This allows you to run cache:warmup even if your
        # environment variables are not available yet.
        # You should not need to change this value.
        env(DATABASE_URL): ''
    

    【讨论】:

      【解决方案2】:

      这很简单:您的命令仍然可以使用--env 引用环境,并且每次您需要从一个环境切换到另一个环境时,您基本上有两种选择:

      • 手动更改.env 文件
      • 创建第二个“vhost”(或等效项),您可以在其中存储您通常放置到.env 中的所有变量,如here 所述

      【讨论】:

      • 当然可以,但是没有办法像 symfony 3 那样在环境之间切换?
      猜你喜欢
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      • 2013-12-07
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 2021-11-16
      相关资源
      最近更新 更多