我有一个包含应用程序特定属性(例如超时等)的文件,我已将其放在 my_app.ini
属性文件中,并使用 parse_ini_file()
读取该文件>.
我应该如何/在哪里让这段代码对我的所有用户请求只运行一次(我不希望我的应用程序在每次请求时都读取 .ini
文件)?
我虽然将配置文件读取代码放在单独的 PHP 中,并在所有需要访问配置变量的页面中将其包含在 include_once
/require_once
中。但是:
- 这是否意味着该文件将
为每个不同的页面阅读一次
(自从我有
多个页面
require_once('config_setup.php')
) ? - 是
require_once
/include_once
在所有用户中只执行一次 请求?
我很想听听其他(更好的)方法如何做到这一点。
最佳答案
PHP 不会在多个请求之间保持状态。这意味着独立的 PHP 不能在请求之间将变量存储在内存中。 session 保存到磁盘(默认情况下),需要重新解析配置文件等。
但是,您可以使用扩展名,例如 APC或 Memcache/Memcached将变量存储在内存中。这些扩展需要在服务器上编译/安装,以便它们的功能可用。
解析 INI 不会成为应用程序的瓶颈。为简单起见,每次都解析它更容易。否则您将节省的 0.00001 毫秒是不值得的。
include_once()
和 require_once()
与持久性无关。它只是告诉 PHP 仅包含脚本如果在此请求期间尚未包含脚本。
关于PHP:对所有用户请求仅加载一次属性集(来自配置文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291540/