首页 文章

PHP DOTENV无法加载env变种

提问于
浏览
2

我正在使用php dotenv for env vars for my php application .

自述文件说我可以将 php dotenv 加载到我的应用程序中:

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

当我尝试登录时,出现500错误 . 我试着 var_dump ing我的 $dotenv var看看它包含什么,但我什么都没得到 . 我不正确地包括这个吗?

/php/DbConnect.php:

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

$DB_HOST = getenv('DB_HOST');
$DB_USERNAME = getenv('DB_USERNAME');
$DB_PASSWORD = getenv('DB_PASSWORD');
$DB_DATABASE = getenv('DB_DATABASE');

我的root / composer.json文件:

{
    "require": {
        "vlucas/phpdotenv": "^2.0"
    }
}

我的phpdotenv供应商文件是:

  • root / vendor / vlucas / phpdotenv / src / Dotenv.php

  • root / vendor / vlucas / phpdotenv / src / Loader.php

  • root / vendor / vlucas / phpdotenv / src / Validator.php

在我的root / php / DbConnect.php文件中:

<?php
require 'vendor/autoload.php';

require 'vendor/vlucas/phpdotenv/src/Dotenv.php';
require 'vendor/vlucas/phpdotenv/src/Loader.php';
require 'vendor/vlucas/phpdotenv/src/Validator.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();

$DB_HOST = getenv('DB_HOST');
    ...

我包括正确吗?

1 回答

  • 0

    我知道这是6个月大,但你不需要include / require因为“phpdotenv”正在加载Dotenv名称空间 . 在composer目录中检查供应商目录自动加载的内容 .

    所以你需要的是:

    require 'vendor/autoload.php';
    
    $dotenv = new Dotenv\Dotenv(__DIR__);
    $dotenv->load();
    
    $DB_HOST = getenv('DB_HOST');
    

    还要确保load()方法可以找到.env文件,如果命名不同,则将文件名传递给load()方法 . 在这里查看文档:https://github.com/vlucas/phpdotenv在Usage部分下 .

相关问题