【问题标题】:.env (phpdotenv) vs file.ini [duplicate].env(phpdotenv)与file.ini [重复]
【发布时间】:2018-07-14 21:03:28
【问题描述】:

我正在查看非常流行的名为 .env 的 php 包,在 packagistgithub 来自 vlucas。

我的问题 - 为什么它比将变量存储在 *.ini 文件中更好?

我的意思是parse_ini_file() 内置 php,不需要额外的包。为什么不使用它?为什么这个包在 packagist.org 上如此受欢迎?

Laravel 使用它一定是有原因的。

【问题讨论】:

  • .env 允许将配置加载到系统环境。直接加载 ini 文件不会这样做
  • 哦,一定不是个案。你可以用像$_SERVER['ini'] = parse_ini_file(...);这样的一行来解决它要启动课程你需要更多像$dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load();
  • 没有明确的原因,这一切都归结为选择一个约定。可以是dotfile,yaml文件,ini文件……最后都是一样的。
  • 简而言之,您可以拥有比原版parse_ini_file 更多的控制权和功能。就像他们为什么要使用 Collection 来为香草 array 增压一样。
  • 您能否给我一个示例或功能可以提供更多控制权?谢谢。 PS 甚至laravel 的人都在使用包装器来更好地控制它。所以它的原始形式并不是那么好。

标签: php laravel packages packagist


【解决方案1】:

duplicated question 上面没有正面回答, 我认为(我的个人意见),他们选择Dotenv 的一个特殊原因是它会加载.env 并自动将您的设置与您的全局$_ENV$_SERVER 和@987654328 混合@ 直接地。然后,您只需使用一个接口(@98​​7654329@ 或getenv())即可访问这些变量。当然 Laravel 可以选择 parse_ini_file重新发明轮子,但是当 Dotenv 做得很好时,我认为没有理由这样做。

【讨论】:

  • 是的,我们可以通过多种方式访问​​环境变量,但这并没有什么好处。最好使用统一的方式在整个项目中以任何方式访问这些变量。但是,laravel 用于许多项目,选择灵活性对他们来说是可以理解的。谢谢。
  • 谢谢。我投了赞成票,因为这是一个很好的观点,但仅适用于 laravel,因此,我希望会有其他答案。
  • 是的.. 除了与 _ENV 轻松混合之外,我没有看到任何特别的原因。看看马特在收录时怎么说:mattstauffer.com/blog/…
  • Lionel Chan,我没有找到任何理由使用您的链接。但读起来很有趣。谢谢。
  • 是的,他从未提及原因,但至少他阐明了他们将其包括在内的一些信息,因为,嗯,它已经很成熟了。
猜你喜欢
  • 2020-06-22
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 2021-06-01
  • 1970-01-01
  • 2021-11-29
  • 2021-10-26
  • 2018-03-31
相关资源
最近更新 更多