laravel框架里.env文件与config目录下配置文件关系

齐天大圣
齐天大圣 原创
2020-12-14 13:40:26 1295浏览

可能许多童鞋和我一样,在看文档时被.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目录下配置文件关系的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。