我对Laravels .env文件VS其他设置感到困惑
我有一个.env文件里面有我的sql数据库设置,但我在config / database.php中也有一个文件,里面有这些设置。
当我将我的应用程序部署到Elastic Beanstalk实例时,它将哪些文件用于数据库设置?
答案 0 :(得分:5)
.env是环境的缩写,因此这是您的环境配置。
database.php
配置包含非关键信息。
您显然不会在源代码管理中拥有数据库的用户名密码,也不会在代码中使用。
为了保证一切安全或保存环境定义的信息......请将它们保存在.env
文件中
Laravel将优先考虑.env
个变量。
答案 1 :(得分:2)
在“.env”文件中,您有自己的设置。在“.php”文件中,如“database.php”文件,这是属性的默认值,通常,“。env”文件中的相应值在此使用此语法:'database' => env('database', 'default_value'),
答案 2 :(得分:1)
.env文件是它将用于配置的第一个文件。如果.env文件中缺少值,Laravel将检查配置文件。我主要使用它们作为备份。
答案 3 :(得分:0)
更详细的答案:
配置文件是您存储所有配置的位置。您不应在其中添加任何用户名,密码或其他机密信息,因为它们将在您的源代码管理中。
所有秘密信息和所有与环境有关的信息都应存储在您的.env文件中。这样,您就可以在本地/测试/生产中使用不同的.env文件来具有不同的配置值。
如果需要,可以在配置文件中访问.env文件中的信息。
中的内容时为您自己的ENV变量创建自己的配置文件。示例:
在您的.env中:
MY_VALUE = foo
示例配置应用程序/myconfig.php
return [
'myvalue' => env('MY_VALUE', 'bar'), // 'bar' is default if MY_VALUE is missing in .env
];
访问您的代码:
config('myconfig.myvalue') // will result in 'foo'