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

标签 php include config configuration-files

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

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

我虽然将配置文件读取代码放在单独的 PHP 中,并在所有需要访问配置变量的页面中将其包含在 include_once/require_once 中。但是:

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

我很想听听其他(更好的)方法如何做到这一点。

最佳答案

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

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

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


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

关于PHP:对所有用户请求仅加载一次属性集(来自配置文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291540/

相关文章:

php - 在 CakePHP 中使用不同的用户角色登录?

php - 在 JavaScript (jQuery) 中隐藏 ajax 路径

php - 多个cronjob相同的php文件

c++ - 如何处理*.IDL 文件中的循环依赖?

asp.net - 如何在 ASP.NET vNext 中处理调试/发布配置转换

php - 在 IIS7 上设置 Laravel

php - mail() 函数 - 发送 HTML 模板

JavaScript "include"函数?

scala - Akka 和 Typesafe 配置版本问题

python - 从文本文件打印多行