我正在尝试使用CodeIgniter 3在项目中配置DotEnv .

我看到根目录(外部应用程序文件夹)中有一个composer.json,所以我运行:

require vlucas/phpdotenv

我在config.php上启用了composer和hooks:

$config['composer_autoload'] = TRUE;
$config['enable_hooks'] = TRUE;

我已经添加了:

$hook['pre_system'] = function() {
    $dotenv = new Dotenv\Dotenv(APPPATH);
    $dotenv->load();
};

我在“application”文件夹中创建了一个.env文件 .

My Problem

在database.php中不使用$ _ENV或getenv加载变量

What I have found

我需要运行:

composer dump-autoload

如果我将composer_autoload从TRUE更改为:

$config['composer_autoload'] = '[FULLPATH]/vendor/autoload.php';

有用!!

Documentation

根据文档,如果我们将composer_autoupload设置为true,它将从以下位置调用autoload.php:

application/vendor/autoload.php.

My Questions

  • 这是否意味着,我必须将composer.json移动到应用程序文件夹,以便在其中创建供应商?

  • 使用$ _ENV是否安全