我对此很陌生,并且已经尝试了几个小时才能使其发挥作用。我有一个具有这种结构的项目:
/API
-.env
/Processor
-index.php
我的 .env 文件的内容是这样的:
API_KEY=xxxx
在我的index.php文件中
require __DIR__ . '/../vendor/autoload.php';
$dotenv = new Dotenv\Dotenv(__DIR__.'/../');
$dotenv->load();
$client = Client::withApiKey($_ENV['API_KEY']);
如果我将 $_ENV['API_Key'] 替换为实际密钥,它就可以工作,所以我相信其余的设置是正确的。我觉得我缺少 .env 文件的正确路径 - 如何检查和/或修复?
您使用Dotenv是错误的。它有一个静态函数来创建实例。
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '\..');
$dotenv->load();
我也有类似的问题:
<?php
require './vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
echo '<pre>';
var_dump(getenv('SESSION_APP_HOST'));
var_dump(getenv('PHP_SECRET'));
it answers 'false' even though I've written my 2 variables in my .env file
SESSION_APP_HOST="dotenv" PHP_SECRET="souper_seekret_key"