Slim Framework 中的安装文件 .env

Setup File .env in Slim Framework

我是 slim 框架的新手。我会尝试在根文件夹项目中添加 .env 文件,然后我想访问 .env 文件中的值。我试过使用这个包 https://github.com/vlucas/phpdotenv 并在 index.php 中加载 .env。但是当我尝试获取 .env 文件中的值时,使用 ex: getenv("DB_NAME") 它 returns false。不是 return DB_NAME 的字符串值。

.env

DB_HOST = localhost
DB_PORT = 3306
DB_NAME = DB
DB_USER = root
DB_PASSWORD = 

index.php

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

我使用 slim 框架 ^4.*,网络服务器 laravel 代客,数据库 MySQL。或者还有其他替代方法可以在 slim 框架中配置 .env 吗?谢谢。

来自package readme file

Using getenv() and putenv() is strongly discouraged due to the fact that these functions are not thread safe, however it is still possible to instruct PHP dotenv to use these functions. Instead of calling Dotenv::createImmutable, one can call Dotenv::createUnsafeImmutable, which will add the PutenvAdapter behind the scenes. Your environment variables will now be available using the getenv method, as well as the super-globals.

所以获取这些值的主要方法是使用 $_ENV$_SERVER super-global 而不是 getenv() 函数。

您应该尝试检索以下值:

$db_name = $_ENV['DB_NAME'];

或像包中提供的示例那样加载.env文件:

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

此外,请确保传递正确的目录(.env 文件所在的目录)作为参数。这通常不应与 index.php 位于同一目录中,但您提供的示例代码暗示您将两个文件放在一个目录中。