.env文件和.ini文件有什么区别?哪一个更好?

时间:2015-10-06 16:43:28

标签: php laravel ini env

我是初学者PHP,我发现Laravel有.env文件来保存一些配置,php也有一个文件格式.ini来保存配置。

我想问两者有什么不同,一个是另一个更好。我应该在我的核心项目中添加dotenv,还是应该为我的配置/环境变量创建类/函数来访问.ini。

我想了解为什么创建dotenv,因为我们已经在php中使用了ini文件扩展系统?

2 个答案:

答案 0 :(得分:1)

.env允许将配置加载到系统环境。直接加载INI文件不会这样做,除非您使用putenv或类似的方法为所有配置值推出自己的解决方案。否则你可以选择任何一种方法。

答案 1 :(得分:0)

根据https://github.com/vlucas/phpdotenv

的文件
  

为什么.env?

     

您永远不应在代码中存储敏感凭据。在环境中存储配置是十二因素应用程序的原则之一。任何可能在部署环境之间发生变化的事情 - 例如数据库凭证或第三方服务的凭证 - 都应该从代码中提取到环境变量中。

     

基本上,.env文件是一种简单的方法,可以加载应用程序所需的自定义配置变量,而无需修改.htaccess文件或Apache / nginx虚拟主机。这意味着您无需编辑项目之外的任何文件,无论您如何运行项目,所有环境变量始终都会设置 - Apache,Nginx,CLI,甚至PHP 5.4的内置Web服务器。它比你知道设置环境变量的所有其他方式更容易,并且你会喜欢它。

     

不编辑Apache或Nginx中的虚拟主机

     

不向.htaccess文件添加php_value标志

     

易于携带和共享所需的ENV值

     

与PHP的内置Web服务器和CLI runner

兼容

此外,Laravel的.env文件还有一些扩展功能。例如,您可以在.env文件中引用其他变量。

MAIL_USERNAME=admin@server.com
MAIL_FROM_ADDRESS=${MAIL_USERNAME}