包含不必要的php文件会减慢网站的速度吗?

包含不必要的php文件会减慢网站的速度吗?,php,web,include,backend,Php,Web,Include,Backend,这个问题可能会促使一些人几乎立即做出肯定的肯定或否定,但请继续阅读 我有一个简单的网站,里面有30个php页面(每个页面都有一些php服务器端代码+HTML/CSS等等)。没有复杂的等级制度,什么都没有。只有30页 我还有一组纯后端php文件,这些文件包含用于将内容保存到数据库、进行身份验证、发送电子邮件、处理订单等的代码。这30个内容页将重复使用这些内容 我有一个主php文件,向其中发送一个参数。这将指定需要这30个文件中的哪一个,并包括相应的内容页。但其中每一个都可能需要包含不同数量的后端文

这个问题可能会促使一些人几乎立即做出肯定的肯定或否定,但请继续阅读

我有一个简单的网站,里面有30个php页面(每个页面都有一些php服务器端代码+HTML/CSS等等)。没有复杂的等级制度,什么都没有。只有30页

我还有一组纯后端php文件,这些文件包含用于将内容保存到数据库、进行身份验证、发送电子邮件、处理订单等的代码。这30个内容页将重复使用这些内容

我有一个主php文件,向其中发送一个参数。这将指定需要这30个文件中的哪一个,并包括相应的内容页。但其中每一个都可能需要包含不同数量的后端文件。例如,一个内容页可能不需要来自后端的任何内容,而另一个内容页可能需要数据库代码,而其他内容页可能需要emailer、数据库和身份验证代码等

我想无论需要什么后端页面,都可以包含在相应的内容页面中,但是路径上的一个小更改,我必须编辑几十个文件。检查请求的内容页(切换案例类型)并在主php文件中包含适当的后端文件将非常麻烦。同样,如果一条路径发生变化,我必须进行许多更改

由于懒惰,我将所有后端文件都包含在主文件中,因此任何内容页都不能请求未包含的内容

第一个问题——这是一个好的做法吗?如果是任何人做的

第二,无论是否需要,包括所有后端文件在内的我是否会遇到性能问题或任何类型的问题

编辑


该网站每天的访问量在3000到4000之间。

它会减慢你的网站速度,尽管可能不会有明显的增长。不过,组织应用程序似乎不是一种健康的方式;我会重新考虑的。尝试将应用程序逻辑(如大部分服务器端代码)与表示层(如HTML/CSS)分开。

您应该进行基准测试。使用不同的include执行同一页面的时间。但我想30个文件不会有多大区别

但是您可以节省时间,只需在php.ini中启用即可(这是一个PECL扩展,因此您需要使用它)。它将缓存文件的解析内容,这将大大加快速度


顺便说一句:懒惰没有什么错,它甚至是一个错误

如果文件很小,并且只包含定义和设置,这不是一个坏习惯。 如果它们实际运行代码,或者非常大,则会导致性能问题。 现在-如果你的网站每小时有3个访问者-谁在乎,如果你有30000。。。这是另一个问题,您需要更加努力地将其最小化。

我的生活方式是“尽可能少地包含,尽可能多地包含”,因此我通常只包含我的配置和会话处理,然后使用配置包含中定义的包含路径,每个页面都包含它们所需的内容,因此,对于路径更改,您仍然需要更改一个文件


如果包含所有内容,那么在获得大量页面点击率(每秒点击数次)之前,不会出现明显的速度减慢,因此在您的情况下,只包含所有内容就可以了。

您可以通过使用。此PHP模块将缓存PHP操作码,从而减少编译时间和性能。

如果您的站点是面向对象的,我建议使用自动加载()

这使用了一个神奇的方法(uuu autoload)在需要时查找类(它很懒,就像你一样!),因此如果某个特定页面不需要所有类,它就不必获取它们


同样,这取决于它是否是面向对象的…

考虑到你网站的大小;如果您没有注意到减速,为什么要尝试修复它

当涉及到更大的站点时,您应该做的第一件事是安装APC。即使您当前包含文件的方法可能无法从APC中获得尽可能多的好处,APC仍然可以在加快速度方面发挥惊人的作用

如果响应速度仍然有问题,你应该考虑包括所有的文件。APC将在内存中保留源文件的缓存版本,但只有在没有条件包含的情况下才能很好地实现这一点

只有当PHP应用程序的大小存在内存耗尽的大风险时(注意,对于大多数大型网站来说,内存不是瓶颈),您才可能希望有条件地包含应用程序的某些部分


Rasmus Lerdorf(PHP的幕后策划者)也同意这一点:

正如其他人所说,它不应该让事情慢很多,但它并不“理想”

如果主要问题是您太懒,无法更改所有包含文件的路径(如果将来需要更新路径)。然后可以使用常量定义主文件中的路径,并在需要包含/需要文件时随时使用该常量

define('PATH_TO_FILES', '/var/www/html/mysite/includes/go/in/here/');

require_once PATH_TO_FILES.'database.php';
require_once PATH_TO_FILES.'sessions.php';
require_once PATH_TO_FILES.'otherstuff.php';

这样,如果路径发生变化,您只需修改一行代码。

这确实会降低您的网站速度。大部分原因是PHP的加载和处理相对较慢。您希望包含的代码越多,应用程序的运行速度就越慢。

您可以通过自己运行一些简单的性能测试来轻松回答第二个问题,例如在不同的配置中测量运行时……即使我这样做,也存在包含多个共享文件的问题。我希望我说的有道理。假设我删除了演示文稿内容。但是业务逻辑将有自己的一组php文件。所有这些biz逻辑文件都需要数量可变的通用php文件。同样的问题再次出现。如果我重新排列/添加/删除/合并一些常用文件会怎么样?我必须转到每个biz logic php文件并更改包含路径。如果我有一个好主意