PHP Dotenv 的路径问题

问题描述 投票:0回答:2

我对此很陌生,并且已经尝试了几个小时才能使其发挥作用。我有一个具有这种结构的项目:

/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 文件的正确路径 - 如何检查和/或修复?

php phpdotenv
2个回答
3
投票

您使用Dotenv是错误的。它有一个静态函数来创建实例。

 $dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '\..');
 $dotenv->load();

0
投票

我也有类似的问题:

<?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"

© www.soinside.com 2019 - 2024. All rights reserved.