在Laravel中获取所有ENV变量

Jam*_*old 0 php configuration environment-variables laravel

Laravel有一个.env文件,其中包含各种变量。有没有一种方法可以在一行PHP代码中获取所有变量?我不想写

echo env('APP_DEBUG')
echo env('APP_URL')
etc...
Run Code Online (Sandbox Code Playgroud)

我试过了

env("*")
env("*")
Run Code Online (Sandbox Code Playgroud)

但没有办法。

Ifn*_*not 7

读取所有env()属性的唯一安全方法是直接使用Dotenv

$env = Dotenv\Dotenv::createArrayBacked(base_path())->load()
Run Code Online (Sandbox Code Playgroud)

此方法适用于所有环境:cli、调度作业、没有适当的 Web 服务器,即使 php.ini 忽略 env。

  • 请注意,由于此方法绕过了 Laravel 自己的实现,因此无法保证此输出中的“FOO”键将与“env('FOO')”匹配。例如,如果通过“php artisan config:cache”缓存配置,则调用“env()”帮助器可能会返回与通过此命令输出的值不同的值。只是一个提示。 (2认同)

Zes*_*han 6

这应该工作:

$_ENV; // gives all env variables.
Run Code Online (Sandbox Code Playgroud)


要获取一个环境变量:

$_ENV['VARIABLE'];
Run Code Online (Sandbox Code Playgroud)

  • 等等,这不是 Laravel 的 .env 变量,这是 PHP 的不是吗?OP 询问如何从 .env 文件中检索变量。 (3认同)