如何从PHP获取wercker环境变量?

时间:2015-08-30 11:07:07

标签: php variables environment rate-limiting wercker

我目前正在为用PHP编写的API编写单元测试。此API在每个请求之前实现一个RateLimiting步骤,我想在测试应用程序时避免这一步。

现在,如果我想在本地运行测试,我只需要检查本地IP,即“:: 1”。但是我在访问持续集成服务器提供的环境变量时遇到了问题(我正在使用wercker)。

如果我从PHPUnit测试中运行它:

var_export(isset($_SERVER["CI"]) || isset($_SERVER["wercker"]));

我得到true,但如果我在应用速率限制之前做了类似的事情:

if (isset($_SERVER["CI"]) || $request->getIp() === "::1") {
   return;
} else {//...

wercker测试保持失败,因为它从不跳过速率限制逻辑。请注意,第一段代码是从PHPUnit中的测试运行的,而第二段是服务器应用程序的一部分。

我对环境变量做错了什么?

如果我必须提供更多信息或文档,请与我们联系。

2 个答案:

答案 0 :(得分:0)

我能够通过使用PHP的getenv函数

来使其工作
if (getenv("CI") ||  $request->getIp() === "::1") {
    return;
} else {//...

答案 1 :(得分:0)

要在Wercker服务器上显示所有环境变量,请添加此步骤(例如:在构建部分中):

build:
    steps:
        - script:
            name: show env vars
            code: env