我的网站在“目录”页面中有大约150个require_once调用。每个页面在此目录上调用require_once以确保加载所有必需的文件。在这个目录上调用require_once大约需要5到15秒,而且我没有简单的方法来减少每个页面所需的类数。
那么:有没有办法加快这个过程?我假设它需要完成一次,但我也假设它会被缓存用于会话,这似乎不是这种情况,因为这个5-15秒的开销在每个页面加载时是相同的。
希望这是有道理的。
谢谢!
答案 0 :(得分:0)
require_once背后的想法是确保:
PHP在内存中存储已加载的文件。如果你在一个文件上调用require_once然后再次调用它,PHP甚至不会查找该文件,它会看到它已经被加载了,并且不会费心阅读该文件。
这让我觉得require_once不是你的页面加载问题的罪魁祸首。
但是,我可能会误解这个问题。如果你的意思是每个require_once都不同,那就是另一个故事。如果它们用于加载类,请查看PHP自动加载功能。 PHP: Autoloading Classes。这只会加载被调用的类。
答案 1 :(得分:0)
我的第一个猜测是你在一个必需的脚本中定义了一些逻辑。如果它们都只是类定义文件,那么没有理由要求它们需要5-15秒。
您是否有理由在每个页面上都包含每个课程?如果可能的话,你应该考虑autoloading classes。