为啥使用 dotenv 库而不是解析 ini 文件?

Posted

技术标签:

【中文标题】为啥使用 dotenv 库而不是解析 ini 文件?【英文标题】:Why use dotenv library instead of parsing ini file?为什么使用 dotenv 库而不是解析 ini 文件? 【发布时间】:2016-03-21 02:46:13 【问题描述】:

php 中,可以使用 parse_ini_file() 读取 *.ini 文件。但是,各种框架(包括 Laravel)选择引入一个单独的库来解析环境文件。

使用这种“dotenv”解决方案而不是ini文件和内置PHP函数的原因是什么?

【问题讨论】:

【参考方案1】:

这是个好问题。我在php.net 上发现了一些提及(按关键字parse_ini_file 搜索)。我想主要的问题是parse_ini_file 不支持某些功能,例如常量、表达式等。另外,我猜有些开发人员希望以 OOP 风格执行此类操作。

【讨论】:

我真的很感谢你!另外,ini解析器有一些缺点,但是有很多优点,对吧?所以,我还是明白为什么dotenv了,呵呵。 :)【参考方案2】:

使用 Laravel .env 对我有用

<?php
var_dump(parse_ini_file('.env', false, INI_SCANNER_RAW));

【讨论】:

你到底想说什么? 谢谢,试过了,这会将 .env 文件放入 PHP 数组以供访问 正是我想要的。谢谢:)【参考方案3】:

我们可以通过多种方式访问​​ .env 变量,但这对单个项目没有好处。最好使用统一的方式在整个项目中以任何方式访问这些变量。但是,很多项目都使用 laravel,选择灵活性对他们来说是可以理解的。

【讨论】:

以上是关于为啥使用 dotenv 库而不是解析 ini 文件?的主要内容,如果未能解决你的问题,请参考以下文章

sh 使用BASH直接解析.env(dotenv)文件

在本地使用库而不是安装它

使用音频单元(混音器主机)从 iPod 库而不是预先选择的声音文件中播放。

CMake:是不是可以仅从静态库而不是源代码构建可执行文件?

dotenv 在生产中需要 .env 文件

在链接/编译时静态包含所有库而不是库的一部分