php中的实用工具文件?

时间:2009-11-19 19:48:20

标签: php oop utilities

在OOP PHP框架中处理“实用程序”函数的最佳方法是什么?现在,我们只有一个文件,其中包含整个系统所需的几个功能。 (例如,一个distribute()函数接受一个值和一个数组,并返回一个数组,其值以与输入数组相同的比例和相同的键分布。)

我总是觉得“脏”使用它,因为它根本不是面向对象的。将它们作为静态方法移动到各种类中是更好的做法,还是只是一种语义解决方法?或者是否只是在框架中的某个级别,某些东西将落在OOP结构之外?

3 个答案:

答案 0 :(得分:5)

我倾向于创建一个Util()类,它只包含静态方法,没有属性,并且不是从中继承的。从本质上讲,它充当了一堆实用程序函数的“命名空间”。我将允许这个类的大小增加,但是如果很明显这些方法只是为了处理某些类型的数据,或者很明显一组相关的方法应该是分为一类,也许还有一些属性。

我认为完全偏离纯粹的OOP实践是完全可以的,只要偏离的代码组织良好,并且不会在系统中造成架构缺陷,使其更难理解和维护。

答案 1 :(得分:3)

我一直对这类问题更加务实。

如果你想要完整的OOP,你应该把它们放在课堂上。但是,这些类只是容器类,因为它们并不真正代表任何类型的对象。

另外:使用类需要您拥有该类的实例,使用单例模式或声明每个函数静态。第一个是慢的(好吧,可能不是那么多,但在大型框架中,这样的东西也会变大 - 特别是在像PHP这样的解释语言中),而第二个和第三个只是简单的无用而只是一个OOP包装器对于一组函数(特别是第三种方法)。

编辑:随意证明我错了。我可能是。我不是很有经验,总是这样看,但我可能错了。

答案 2 :(得分:2)

我一直认为实用函数是标准php函数的扩展。它们不是面向对象的,因为你没有从使它们成为OO中获得任何好处。