12

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

例如,现在我将所有文件都放在一个名为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');
?>
4

5 回答 5

22

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

于 2010-01-21T03:28:51.857 回答
3

您要确保使用的是 XCache 或 APC 等 PHP 缓存。你的 PHP 文件应该都在内存中,你不应该担心你的包含会撞到磁盘。

如果您将志同道合的函数/类分解成自己的文件,我肯定会发现它更容易。

于 2010-01-21T04:01:39.097 回答
2

在可维护性方面,通常最好将您的功能分成相关的组。(就像你上面展示的那样,user.php只是与用户相关的功能)。

如果您知道每次需要包含任何文件时都需要所有包含的文件,那么您应该只拥有一个包含所有这些包含的文件。否则,它会破坏拥有该“包罗万象”文件的目的。

于 2010-01-21T03:30:39.247 回答
2

根据我的经验,如果您正在谈论函数库的几十个左右的文件,那么多个包含和/或通常不会让您退缩太多。尤其是如果您可以设法在请求生命周期内仅调用特定文件的语句一次。

如果您进入 OOP 或高度复杂的功能/过程类型架构,其中可能有数百个不同的类/文件,它开始显示性能命中的地方。但通常到那时,您将有望通过缓存/编译进行某种缓解。

于 2010-01-21T03:51:59.990 回答
0

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

对于所有 OOP 类,虽然我使用自动加载 -> 我知道它会稍微慢一些,但是在我创建一个新类时它不必包含它们。并且它们仅根据需要加载。

As an aside, include is quicker than include_once as it doesn't have to check if the file has been included already.

于 2010-01-21T04:34:38.147 回答