Laravel如何解析.env文件?

Mar*_*ner 12 php symfony laravel laravel-5

我想模仿Laravel应用程序通过.env文件设置环境变量的方式.

APP_ENV=local
DB_DATABASE=fruits
DB_USERNAME=fruituser
DB_PASSWORD=secretpassword
Run Code Online (Sandbox Code Playgroud)

所以它可以config.php像这样设置默认回退:

return [
    'env' => env('APP_ENV', 'production'),
];
Run Code Online (Sandbox Code Playgroud)

但是,我无法深入挖掘框架代码以找到解析文本的位.env并将其转换为适当的PHP变量.

我在以下位置找到了env()辅助函数的定义vendor\laravel\framework\src\Illuminate\Foundation\helpers.php:

function env($key, $default = null)
{
    $value = getenv($key);

    if ($value === false) {
        return value($default);

    }
...
Run Code Online (Sandbox Code Playgroud)

...但是调用了另一个全局辅助函数getenv(),这就是路径变冷的地方.

我怀疑我们现在可能会达到Symfony水平,但是我找不到定义,getenv()我们将非常感谢您的帮助和指导.

Man*_*eri 6

Laravel为此使用了这个库

https://github.com/vlucas/phpdotenv