Edw*_*ard 8 php configuration ini caching configuration-files
目前我正在将PHP脚本的配置存储在另一个PHP脚本中的变量和常量中(例如config.php).
因此,每次调用脚本时,它都包含配置脚本以访问变量/常量的值.由于INI文件更容易被其他脚本解析,我考虑将配置的值存储在这样的文件中,并使用parse_ini_file()读取它.
在我的观点中,PHP将脚本文件保存在内存中,因此包含脚本文件(通常)不会导致IO(或者Zend是否进行缓存?或者根本没有缓存?).
如何阅读自定义INI文件.我知道因为.user.ini有缓存(请参阅参考资料user_ini.cache_ttl),但PHP是否也会缓存自定义INI文件?或者调用parse_ini_file()始终导致IO?
加载配置指令所需要的时间(这是不与由该应用执行这些指令所需要的时间)通常可以忽略不计 -下面一毫秒为最"合理大小的"配置.所以不要担心 - 在性能方面,INI,PHP或JSON都是同样好的选择.即使PHP比JSON快十倍,也就像加载0.001s而不是0.01s; 很少有人会注意到.
也就是说,在决定存储配置数据的位置时需要考虑因素.
require_once.PHP核心不进行缓存.期间.也就是说,你永远不会单独使用PHP核心:它将作为(快速)CGI,Apache模块等加载.此外,您可能不会使用"准系统"安装,但您可能已经安装了几个模块(很可能会有).
"加载器"部分和"模块"部分都可以进行缓存; 他们这样做可能导致不必要的重复或冲突,所以值得检查一下:
require_once在所有文件中使用,则配置将仅在需要时加载一次.这不是缓存,但它仍然是性能提升.通常情况下,根据一些配置指令,您将不得不执行几个非常简单的操作之一.然后,您将使用结果作为实际输出.
在这种情况下减慢工作流程的原因不在于读取"config.layout"是"VERTICAL"还是"HORIZONTAL",而是实际生成布局(或其他任何内容).在这种情况下,您可以通过将生成的对象存储在某处来获得巨大的好处:
cache/config.layout.vertical.html.gz).如果布局发生更改,或者某种缓存失效过程,您可能需要部署某种"陈旧数据检查".(具体来说,对于布局,您可以查看Twig,它也可以进行参数化模板缓存).您可能希望阅读有关客户端缓存和标头的信息,并可能会探索您的主机提供的任何选项(负载平衡器,HTTP缓存,如Varnish等).