小兔网

可能许多童鞋和我一样,在看文档时被.env文件和config目录里的配置文件搞混乱了,它们之间到底什么关系。今天,我们一起看看它们之前的关系吧。

.env文件与config目录配置文件关系

首先,文档里说laravel所有配置文件都保存在config目录的文件中。那么根目录下的.env文件到底是干嘛的呢?我们打开看下.env文件以及config/app.php这两个文件

# .env文件APP_NAME=Laravel……    # app.php文件'name' => env('APP_NAME', 'Larave'),

看到这,我基本可以猜测出来大致意思了:如果config目录下的配置文件配置项使用了env函数,那么如果.env文件中配置了该选项,则使用.env文件里的值,否则使用配置文件设置的默认值

接下来,来验证我的猜测。首先写下测试代码:

return config('app.name');

接着,将.env文件的APP_NAME修改为boy,app.php文件里的默认值修改为girl

APP_NAME=boy……'name' => env('APP_NAME', 'girl'),

发现一个有趣的问题,测试代码返回的结果还是Laravel。然后,我重启了下php artisan serve,然后再刷新才出现结果为boy。这样就验证了我的猜测是对的,但有引出另一个推测:如果用到的配置值在.env文件里,那么修改.env文件里的值不会立即有效,必须重启才会有效

为了验证我的另一个猜测,我将.env里的APP_NAME那行给删除了,然后重启。测试的返回结果是girl。接着,我将girl修改为girl1,然后刷新浏览器,返回值是girl1。所以我的结论验证的正确的。

这里总结下:

  • 如果config目录下的配置文件配置项使用了env函数,那么如果.env文件中配置了该选项,则使用.env文件里的值,否则使用配置文件设置的默认值

  • 如果用到的配置值在.env文件里,那么修改.env文件里的值不会立即有效,必须重启php artisan serve才会有效

以上就是laravel框架里.env文件与config目录下配置文件关系的知识。速戳>>知识兔学习精品课!