PHP中每个文件只有一个或多个函数?

时间:2010-11-03 00:37:50

标签: php performance function code-organization pageload

我有这个问题,每当我在php中设计我的应用程序时,我真的会引起我的问​​题:我不知道我是否应该为每个函数创建separete文件(例如:验证特定表单的函数)。

好吧,有人可能会认为这没有任何意义,因为我必须将每个文件包含在内,这可能会导致应用程序更慢?

但是我仍然认为它确实有意义,因为对于一个页面加载我怀疑脚本会使用其他函数,所以它们必须被装入什么都没有?此外,我不必手动包含每个函数文件,如果我设计的系统为我做这个动态(解析url vars等),也就是说,在需要时正确加载函数(-files)。你觉得怎么样?

4 个答案:

答案 0 :(得分:2)

你在使用OO吗?如果是这样,那么你肯定应该为每个文件保留一个类,并智能地命名文件......

class Page {
      ...
}

应该可以找到像classes/Page.phpincludes/Page.class.php或类似的地方。

如果您只有一堆全局函数,则应将它们分组到文件中,例如: includes/functions/general.php

详细说明,您的functions文件夹可能有......

  • array.php
  • string.php
  • form_validation.php
  • request.php
  • general.php
  • html.php

如果您正在组织这样的文件,最好使用一个类并使函数保持静态,例如string::isAlphaNum($str)。这是一个更好的主意,因为它只会向您的全局命名空间引入一个新术语,而不是一堆不必要的术语。

如果您使用的是PHP 5.3,您还可以查看名称空间。

答案 1 :(得分:1)

文件包含的开销很小,考虑到缓存和其他方面,你不必真的担心它。它更多的是关于如何让自己保持井井有条并快速找到你的东西。

老实说,我很少使用函数,我使用类。规则通常是每个文件都有一个类。但是我还有一个包含我所有全局函数的工具箱文件。

答案 2 :(得分:1)

您应该确保安装了APCxCacheeAccelerator。它们都为编译的PHP字节码提供缓存。

这意味着一旦包含文件,它将被存储在内存中,并可以通过功能请求使用。不需要包含文件。

答案 3 :(得分:0)

几乎可以肯定,通过增加(多个)多个文件包含的磁盘I / O读取,比具有许多功能的较小文件集更能显着地提升性能。

对于自动文件包含,将函数包装到合适的类中,并使用spl_autoload让PHP处理包含过程。