【问题标题】:How to check the environment using the Symfony console tool?如何使用 Symfony 控制台工具检查环境?
【发布时间】:2023-03-21 13:24:02
【问题描述】:

我使用 Symfony CLI 工具,并且正在寻找一种检查环境的方法。我找不到类似的东西

$ php bin/console get environment

还有其他方法吗?是否有可能/如何找出当前处于活动状态的环境?


编辑

应用程序在具体环境中运行(然后使用 app.php 代表 prodapp_{env} 代表任何其他环境)。

所以我真正想要实现的是找出应用程序当前正在使用哪个环境(当应用程序通过 HTTP 调用时,例如在浏览器中)。

【问题讨论】:

    标签: symfony environment symfony-console


    【解决方案1】:
    php bin/console about
    

    这将显示有关您的应用的信息,一行将涉及环境:

    【讨论】:

    • 我不敢相信我不知道这个……我在旧金山已经一年多了,到底是什么。
    【解决方案2】:
    php bin/console debug:container --env-vars
    

    【讨论】:

    • 这个解决方案比第一个好。例如,它看到了DATABASE_URL,而php bin/console about 则看不到。
    【解决方案3】:

    怎么样

    $this->getContainer()->getParameter('kernel.environment');
    

    在 ContainerAwareCommand 中?

    【讨论】:

    • ContainerAwareCommand 已在 4.2 中弃用,应继续使用,因此不应使用此解决方案。 symfony.com/blog/…
    • 你可以使用ParameterBagInterface作为依赖注入。
    【解决方案4】:

    对于使用 Flex 的 Symfony,您可以通过 getenv() PHP 函数获取 APP_ENV 变量:

    getenv('APP_ENV');
    

    【讨论】:

      【解决方案5】:

      只需输入:

      php bin/console
      

      将显示所有可用的命令。我认为通常默认情况下,“dev”和“prod”都可用。您可以使用选项--env=ENV 指定特定于环境的命令。

      所以要调试dev 中的路由,您需要输入:

      php bin/console --env=dev debug:router
      

      它会在dev 环境中显示路由。我不确定这是否对你有帮助。


      编辑#2

      您可以在 Twig 文件中添加一个测试并打印出您的环境:

      <p>Application Environment: {{ app.environment }}</p>
      

      这是一个快速简便的解决方案。

      【讨论】:

      • 感谢您的快速答复!但我的意思是别的:应用程序在具体环境中运行(然后使用app.php 表示prodapp_{env} 用于任何其他环境)。那么如何找出应用程序当前正在使用哪个环境,何时(通过 HTTP 请求调用应用程序时,例如在浏览器中)?
      • 您可能应该使用该特定信息更新您的帖子。
      • 我添加了 EDIT #2 部分 - 看看是否有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 2012-06-03
      相关资源
      最近更新 更多