【问题标题】:detect environment type (production, development or staging) in Silex在 Silex 中检测环境类型(生产、开发或登台)
【发布时间】:2015-04-12 11:51:28
【问题描述】:

我正在使用微框架 Silex,我需要在运行时检测给定脚本内的环境类型。也就是说,检测它是 devprod 还是 staging

【问题讨论】:

  • 我使用的配置文件存在于 git 不跟踪的每台机器上。
  • 这不是必须的;行为应该由配置控制,而不是你附加的标签。

标签: php symfony development-environment production-environment silex


【解决方案1】:

我没有使用 Silex 的经验,但我总是为此使用环境变量。然后在您的应用程序中,您可以通过以下方式获取当前环境:

getenv('ENVIRONMENT')

【讨论】:

    【解决方案2】:

    Silex 本身没有环境,只有调试模式。为了知道您的应用程序是否处于调试模式,您需要使用 $app['debug'] 变量。

    话虽如此,没有什么能阻止您在其中创建自己的 环境 变量,比如说$app['env'](是的,非常原始...)。因此,无论您需要知道自己运行的是哪个环境,都可以使用$app['env'] 变量。

    为了初始化这个变量并遵循silex skeleton,您可以拥有(在网络文件夹中,您的DocumentRoot)一个index.phpindex_dev.phpindex_stg.php,您可以在其中设置$app['env'] 相应地在调用 $app->run() 之前。

    或者您可以使用@WimMostmans 解释的技术并使用真实的环境变量:-)

    【讨论】:

    • 谢谢,这个解决方案适用于前端控制器,但我想知道它如何在命令上工作?
    • 您应该为命令(--env)设置一个参数,默认为您想要的环境。
    猜你喜欢
    • 2016-03-22
    • 2020-11-23
    • 1970-01-01
    • 2018-09-07
    • 2015-01-31
    • 2021-02-23
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多