在一个文件中混合PHP函数和类


Mix of PHP functions and classes in one file?

是否有任何强大的技术原因不将函数和类列表组合在一个PHP文件中?或者在单个文件中组合多个类?

我通常把每个类放在自己的文件中,以保持"干净"。如果我需要非面向对象,那么我可以将相关函数分组到单个文件中。然而,我见过所有东西都被堆在一个文件中的代码。除了没有组织外,这种做法还有其他危险吗?

不这样做的唯一技术原因是支持PSR-0(自动加载)。

这强制一个类一个文件标准。这不适用于全局的用户定义函数。

分隔类被认为是良好的实践,如果您打算使用任何PSR标准,则必须强制执行。

没有技术上的理由不这样做,但是如果事情是模块化和有组织的,你可能会发现你的代码更容易维护。

有时我需要在同一个文件中放置一堆类,通常当我需要为SOAP服务或异常声明接口时,无论如何,它仍然是"有组织的",因为这些3行代码的类最好聚集在一个文件中,而不是分散在整个代码库中。

对于函数,出于同样的原因,您应该在一个文件中声明它们,但是如果您有一堆函数(50多个),请考虑以任何方式将它们分组在不同的文件中。

这样做的危险在于,您可能会使您的代码库更难维护、组织和保持版本控制。

我看到人们试图将每个类都放入一个文件的唯一原因是他们使用类似notepad++的东西进行开发,这使得打开文件和在类/函数之间跳转非常慢。

开发中的文件很像函数/类,因此,使它们越小、越有组织,维护起来就越容易。