包含函数文件的效率(在PHP中)

时间:2010-01-21 03:24:42

标签: php performance include server-side-includes

如果我有大量的功能,最好将它们全部保存在一个大文件中,或者将它们分成几个相关功能的文件会更好。通过更好,我的意思是更高效的可维护性和服务器处理请求。

例如,我现在将所有文件都放在名为include.php的文件中。但是拥有包含的包含文件更明智:

<?php
 include('/functions/user.php');
 include('/functions/admin.php');
 include('/functions/content.php');
 include('/functions/nav.php');
 include('/functions/database.php');
 include('/functions/other_junk.php');
?>

5 个答案:

答案 0 :(得分:19)

为了维护起见,绝对将它们分开。我怀疑性能会受到影响,但即使它确实存在(只是一点点),你最好还是编写可维护的,可读的代码。

答案 1 :(得分:3)

您希望确保使用的是像XCache或APC这样的PHP缓存。那么你的PHP文件应该都在内存中,你根本不应该担心你的包含在击中磁盘。

如果你把志同道合的函数/类分解成自己的文件,我肯定会觉得更容易。

答案 2 :(得分:2)

就可维护性而言,通常最好将您的功能分成相关的组。 (如上所示,user.php只是与用户相关的函数)。

如果您知道每次需要包含任何文件时都需要所有包含的文件,那么您应该只有一个包含所有这些文件的文件。 否则,它就会失去拥有“全能”文件的目的。

答案 3 :(得分:2)

根据我的经验,如果您正在为功能库谈论几十个左右的文件,那么多个包含和/或要求通常不会让您回头太多。特别是如果您可以设法在请求生命周期内只调用一次特定文件的语句。

如果你进入OOP或高度复杂的功能/程序类型架构,它可能有数百个不同的类/文件,它开始显示性能命中。但通常在那时你可以通过缓存/编译来完成某种缓解。

答案 4 :(得分:0)

我在.config文件中有一个包含列表。

对于所有OOP课程虽然我使用自动加载 - &gt;我知道它稍微慢一些,但是当我创建一个新类时,它可以节省它们。它们只是按要求加载。

顺便说一句,include比include_once更快,因为它不必检查文件是否已经包含在内。