功能与对象最佳实践

时间:2009-01-30 04:40:04

标签: php function object

我想知道关于功能和对象的最佳实践。例如,我想执行一个名为tidy的动作。它会将我的数据作为输入并整理并返回。

现在我可以用两种方式做到这一点。一个使用简单的函数,另一个使用类。

Function: $data = tidy($data);
Class:
$tidy = new Tidy();
$data = $tidy->clean($tidy);

现在使它成为一个类的优点是我不必在之前加载该类。我可以简单地使用php的自动加载功能来实现。

另一个例子是数据库类。现在每个人似乎都在使用单独的类来进行数据库连接。但是我们通常只有该类的一个对象。在某种意义上,我们是否只使用类来实例化单个对象,这与类和对象的定义是否相反?

我有点不明白何时使用函数以及何时使用类。关于同样的最佳做法是什么?任何指导方针?

谢谢你, 艾力

4 个答案:

答案 0 :(得分:4)

对于做一件事而且只做一件事的事情,我只是使用一个函数。任何更复杂的东西,我会考虑使用一个对象。

我花了一些时间来浏览一些(可能是丑陋和可怕的)PHP代码,实际上,有些东西可以作为对象完成,但是它们被保留为函数。时间转换和字符串替换。

答案 1 :(得分:4)

  • 函数通常执行一项特定任务。

  • 对象表示具有与之关联的任务的对象。 (方法)

使用tidy的功能。干净利落。 ;-)

答案 2 :(得分:1)

我个人会创建一个处理数据的'数据'对象,然后在它下面有一个整洁的方法。

此模式将允许您对数据执行的任务数量扩展,同时将其全部包含在一个漂亮的小型自包含块中。

答案 3 :(得分:0)

对于你的情况,我会把它变成一个函数,可能是类似“util”类的静态函数(为此类的唯一目的是像命名空间一样 - 它会将你所有的随机分组有用的方法)。根据经验,只有在需要存储需要在多个函数调用之间存活的数据时才使用对象。这就是为什么数据库方法成为对象的一部分,因为它们存储了在多个函数调用之间使用的数据库句柄。是的,只有一个数据库对象,但将它作为一个对象将所有与数据库相关的东西组合到一个地方,使其更容易维护并保持无错误。