【问题标题】:create arbitrary values in php.ini在 php.ini 中创建任意值
【发布时间】:2011-06-16 15:35:17
【问题描述】:

我想将我的一些应用配置数据放入 php.ini
我试图在那里添加新值,然后使用ini_get
获取它们 我什么都没有显示。 我需要在扩展中定义新条目吗?
我知道我可以创建一个配置文件/ini 文件并使用 PHP 轻松解析它,但我想避免这种情况。 我这样做是因为我假设每个进程都加载一次。
我不在这里给出大的图景,因为我想尽可能地保留它只是一个技术问题,遗憾的是,这个平台不允许辩论。
我在 php.ini 中确实需要它

【问题讨论】:

  • 您确实应该考虑将您的应用配置保留在 PHP.ini 之外。 PHP.ini 应该只用于 PHP 及其扩展,仅此而已。将您的应用配置放在单独的文件中。对此的加载惩罚不会真正减慢您的速度。另外,这个配置文件可以用PHP编写,很方便。

标签: configuration php


【解决方案1】:

你看过get_cfg_var( config_var )吗?

http://www.php.net/manual/en/function.get-cfg-var.php

我相信这是为了从例如检索自定义变量。服务器的 php.ini 文件

【讨论】:

  • get_cfg_var()ini_get() 的作用相同,唯一的区别是get_cfg_varphp.ini 文件中获取值,而ini_get 获取当前值可能已在运行时修改的值。为什么会回答这个问题?
  • @ring0 get_cfg_var()ini_get() 做的事情不同。不知道为什么,但ini_get() 实际上并没有得到php.ini 中的值,而get_cfg_var() 得到了
  • @ringø ini_get() 检索与已注册模块关联的 ini 设置的值,其值可以通过 php.ini 文件进行修改。 get_cfg_var() 检索出现在 ini 文件中的 ini 值。如果一个模块定义了一个 ini 条目 mod.a 并且在 php.ini 文件中设置了值 5,那么如果安装了该模块,这两个函数都可能返回 5。如果未安装该模块,ini_get() 将返回 false 而get_cfg_var() 仍将返回 5。
【解决方案2】:

不要使用 php.ini 来配置你的应用程序,它不是正确的地方(顾名思义,它是用来配置 php,而不是任何使用它的应用程序)。

如果您想在应用程序配置中使用 ini 文件,请查看 parse_ini_file()

【讨论】:

  • 我理解,但虽然这可能不是对您问题的严格回答,但您实际上应该这样做;在 php.ini 中执行此操作会在某些时候给您带来麻烦,无论是迁移还是其他。如果您对问题所暗示的性能感到担心,请记住,如果每个请求都访问该 ini 文件,那么无论如何它最终都会出现在您的文件缓存中,所以这真的不是问题。如果您真的确定这是您的问题,请使用内存缓存(无论您使用的任何 php 操作码缓存系统 [APC、Xcache、...] 都包括一个)。
  • 我没有给出大图,因为它是很多文字,我保留了严格的技术问题。我确实需要它在 php.ini
猜你喜欢
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多