PHP:仅为所有用户请求加载一组属性(来自配置文件)

Mal*_*dog 2 php config configuration-files include

我有一个文件,其中包含我已放置在my_app.ini属性文件中的应用程序特定属性(例如超时等),我使用它读取parse_ini_file().

我应该如何/在哪里使这个代码对我的所有用户请求运行一次(我不希望我的应用程序.ini在每个请求上读取文件)?

我虽然把配置文件读取的代码在一个单独的PHP和包括本与include_once/ require_once在需要访问配置变量的所有页面.但:

  1. 这是否意味着文件将为每个不同的页面读取一次(因为我有多个页面,所以不同的时间 require_once('config_setup.php'))?
  2. require_once/ include_once 在所有用户请求只执行一次?

我有兴趣听到其他(更好)的方法如何做到这一点.

And*_*ore 8

PHP不会在多个请求之间保持状态.这意味着独立的PHP无法在请求之间的内存中存储变量.会话保存到磁盘(默认情况下),需要重新配置配置文件等.

但是,您可以使用APCMemcache/Memcached等扩展名将变量存储在内存中.需要在服务器上编译/安装这些扩展,以便它们的功能可用.

解析INI不会成为您应用程序的瓶颈.为简单起见,每次解析它都更容易.那个0.00001毫秒,你将保存,否则是不值得的.


include_once()并且require_once()与持久性无关.它只是告诉PHP只包含脚本,如果在此请求期间尚未包含该脚本.