Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何加快我的PHP包含?_Php_Caching - Fatal编程技术网

如何加快我的PHP包含?

如何加快我的PHP包含?,php,caching,Php,Caching,我有一个PHP文件,它包含了我调用的几乎所有内容。这个include文件包含其他几个php文件。我之所以使用这一个文件来包含所有内容,是因为我的开发人员和生产服务器之间存在路径差异,只需包含一个文件就可以了,而且我知道我有我需要的类 有没有什么简单的方法可以缓存文件,或者加快加载速度?您可以为PHP安装操作码缓存 操作码缓存通过将PHP脚本的编译状态缓存到RAM中,并直接从RAM中使用编译版本,从而减少PHP脚本的编译时间,从而优化性能。这将增加页面生成时间的速率。这也意味着您的文件将只

我有一个PHP文件,它包含了我调用的几乎所有内容。这个include文件包含其他几个php文件。我之所以使用这一个文件来包含所有内容,是因为我的开发人员和生产服务器之间存在路径差异,只需包含一个文件就可以了,而且我知道我有我需要的类


有没有什么简单的方法可以缓存文件,或者加快加载速度?

您可以为PHP安装操作码缓存


操作码缓存通过将PHP脚本的编译状态缓存到RAM中,并直接从RAM中使用编译版本,从而减少PHP脚本的编译时间,从而优化性能。这将增加页面生成时间的速率。这也意味着您的文件将只包含一次。

有很多方法可以处理路径差异,而不是每次都加载所有内容。例如,您可以在所有文件系统操作中定义一个常量并将其用作前缀:

define('DOC_ROOT', '/var/www/foo');
require_once DOC_ROOT . '/lib/bar.php';
或者,您可以依赖系统的DOCUMENT_根变量(如果已设置并正确):

或者你可以使用。或者你可以使用


除此之外,每次运行脚本时,PHP都会使用您指示的PHP源代码查找并解析每个文件。如果您安装了。

我们讨论的是什么样的加载时间差,您可以缩短第二部分?包含,甚至包含其他文件的文件都不应该被注意到。您是否同时也在实例化类?连接到数据库?您是否尝试过在没有文件包含的情况下加载初始页面以查看时间差?编写一个小脚本,创建一次“主包含”,并将结果写入一个新文件,然后用于所有其他页面的包含?这样,您只需执行一次包含的大量操作。但是你必须手动执行。当我执行一个相当简单的AJAX请求时,它可能需要3秒钟才能返回,当它只是在拉HTMLI时。我正在使用文档根来正确加载所有内容,尽管我必须纠正它,因为在一台服务器上它没有结束斜杠,而在另一台服务器上它有结束斜杠。我添加了类自动加载,这似乎有很大帮助。谢谢。+1用于类自动加载,但是对于始终包含的类,您应该放置
include
语句。例如,如果一个库类扩展了另一个库类,那么您应该在文件的顶部有一次
require\u
(这在许多框架中都是这样做的)。
require_once $_SERVER['DOCUMENT_ROOT'] . '/lib/bar.php';