【问题标题】:How to set up an env variable in PHP?如何在 PHP 中设置环境变量?
【发布时间】:2011-07-04 15:15:07
【问题描述】:

我正在尝试在我的网站中设置环境变量。

这个想法是创建一个 $env='test'; 或 $env='production'; 和所有其他 PHP 文件,检查这个 var 以查看它们在哪个环境中。

我现在要解决的解决方案是在索引文件中创建一个会话。但我对这个解决方案感到不舒服。

【问题讨论】:

标签: php environment-variables


【解决方案1】:

最好的方法是在你的...环境中设置你的环境变量。

如果您使用 Apache,您可以将其添加到您的虚拟主机配置(或 .htaccess)中:

SetEnv MYAPP_ENV value

然后,在你的 PHP 中:

$_SERVER['MYAPP_ENV']

您可以找到的所有 Web 服务器都有等效的 SetEnv。

【讨论】:

    【解决方案2】:

    例如,您可以在索引文件中使用 declare 方法;

    define('env', 'production');
    //check for env
    function isEnv($env = 'production')
    {
      return defined(env) && $env == env;
    }
    //now use our function
    if(isEnv('dev'))
    //do something here
    

    【讨论】:

    • 如果我错了,请纠正我,但是 afaik declare 只接受一个参数,并且该参数必须是指令 ticks 或 encoding 之一。您的意思可能是define 而不是declare?
    【解决方案3】:

    使用 php sessions 或 cookie。

    【讨论】:

      【解决方案4】:

      你看过 get_cfg_var() 吗?它允许你在php.ini 中设置一些东西,然后调用它(不像ini_get(),它似乎没有在php.ini 中获取自定义变量)

      我需要做类似的事情,而这可以为我做。

      【讨论】:

        【解决方案5】:

        最近我编写了一个库来从环境变量中获取值并解析为 PHP 数据类型。该库可用于将环境变量解析为 PHP 数据类型(如转换为整数、浮点数、空值、布尔值),解析 JSON 字符串等复杂的数据结构,以及更多社区的贡献。

        该库在此处可用:https://github.com/jpcercal/environment

        在名为“www”或“htdocs”或“public”或“web”的目录中使用 .htaccess 文件设置您的环境变量,具体取决于您的托管公司。 .htaccess 的内容:

        ...
        SetEnv APP_ENV production
        ...
        

        并从环境变量(独立于环境 CLI、Apache、Nginx、PHP 内置服务器等)中获取值:

        <?php
        // ...
        require "vendor/autoload.php";
        // ...
        if (Cekurte\Environment\Environment::get("APP_ENV") === "production") {
            // ...
            // It is your production environment ...
        } else {
            // ...
            // It is your development environment ...
        }
        

        尽情享受吧。

        【讨论】:

          【解决方案6】:

          PHP 提供了数组:$GLOBALS 来在全局范围内存储变量。

          例如

          //to set the variable:
          $GLOBALS["env"] = "test";
          //to access the variable:
          $some_var = $GLOBALS["env"];
          

          更多:http://php.net/manual/en/reserved.variables.globals.php

          【讨论】:

            猜你喜欢
            • 2011-02-13
            • 2015-02-06
            • 1970-01-01
            • 1970-01-01
            • 2023-03-10
            • 1970-01-01
            • 2013-11-10
            • 2019-07-02
            相关资源
            最近更新 更多