假设我们安装了所有默认设置的 Linux + Apache + PHP。我有一些使用大型第三方 PHP 库的 PHP 网站,比如说 1 Mb 的 PHP 源。这个库很少使用,假设只用于 POST 请求。我不能将这个库的使用移动到单独的 PHP 文件中是有原因的。所以,我必须为每个 HTTP 请求包含这个库,但很少使用它。在这种情况下,我应该担心 PHP 解析所花费的时间吗?让我解释。我可以这样做:
<?php
require_once('heavy_library.php');
// do regular stuff
if(we need heavy library)
{
heavy_library_function();
}
?>
我认为这个解决方案很糟糕,因为在这种情况下,heavy_library.php 会针对每个 HTTP 请求进行解析。我可以将它移到 if 语句中:
<?php
// do regular stuff
if(we need heavy library)
{
require_once('heavy_library.php');
heavy_library_function();
}
?>
现在据我了解,只有在我们需要库时才会对其进行解析。
现在,回到问题上来。Apache 和 PHP 的默认设置。我应该关心这个问题吗?我应该将 require_once 移到真正使用它的地方,还是可以像往常一样保留它,Apache / PHP 会做某种缓存来阻止解析每个 HTTP 请求?