我有一个PHP文件,我包含在几乎所有我调用的文件中。这个包含文件包含其他几个php文件。我将这个文件用于所有我的包含的原因是因为我的开发服务器和生产服务器之间存在路径差异,只需要包含一个文件并且知道我在那里有我需要的类就很好。
是否有任何简单的方法来缓存文件,或者加速加载时间?
答案 0 :(得分:3)
您可以为PHP安装操作码缓存
操作码缓存通过将PHP脚本的编译状态缓存到RAM中并使用直接从RAM中编译的版本来删除PHP脚本的编译时间来优化性能。这将增加页面生成时间的速度。这也意味着您的文件只会被包含一次。
答案 1 :(得分:2)
处理路径差异的方法有很多,而不是每次都加载所有内容。例如,您可以定义一个常量,并在所有文件系统操作中将其用作前缀:
define('DOC_ROOT', '/var/www/foo');
require_once DOC_ROOT . '/lib/bar.php';
或者您可以依赖系统的DOCUMENT_ROOT变量(如果设置并且正确):
require_once $_SERVER['DOCUMENT_ROOT'] . '/lib/bar.php';
或者您可以使用class autoloading。或者您可以使用include_path。
除此之外,每次运行脚本时,PHP将始终查找并解析每个文件,并使用您指示的PHP源代码。如果您安装opcode cache,则可以缩短第二部分。