如何在 PHP/phpinfo() 中从 Shell 获取环境变量

How to get Environment Variable from Shell in PHP/phpinfo()

我正在尝试使用 SendGrid 的 API,为此我需要使用以下命令访问已添加到根目录的环境变量。

echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
echo "sendgrid.env" >> .gitignore
source ./sendgrid.env

这在我的根文件夹中创建了一个 sendgrid.env 文件,将 sendgrid.env 添加到我的 .gitignore 文件,并将 SENDGRID_API_KEY 添加为环境变量。

但是,PHP 的 getenv('SENDGRID_API_KEY') 键没有返回任何内容,PHP 的 phpinfo() 没有将 SENDGRID_API_KEY 反映为环境变量.

这是API installation instructions.

暗示您应该使用另一个包来读取 .env 文件。在他们的官方网站上有一个 sample 使用 Dotenv class 将文件内容加载到环境中:

<?php

require 'vendor/autoload.php';
Dotenv::load(__DIR__);
$sendgrid_apikey = getenv('YOUR_SENDGRID_APIKEY');

不过,他们甚至没有解释 class 的来源。显然,他们的意思是你应该安装 vlucas/phpdotenv package. Note, that in the current version of this package, the load method is non-static (it actually was static in early versions):

$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();