可能许多童鞋和我一样,在看文档时被.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中文网其他相关文章!