前言:是的,我读过: http://drupal.org/node/547518
我正在为 Drupal6 编写“foo”模块,我在其中以 OO 方式组织代码。
有一个名为 Foo 的类,它有很多 setter 和访问器,并且它在抽象一些非常讨厌的代码和 SQL 方面工作得很好。
问题是为其他模块公开一个类是常见做法,还是将内容包装在更典型的 foo_myfnname() 中更好?
例如,如果我正在编写模块的文档,我应该告诉人们这样做吗:
$foo = new Foo();
$something = $foo->get_something();
或者告诉他们打电话:
foo_get_something();
其幕后作用:
function foo_get_something() {
$foo = new Foo();
return $foo->get_something();
}
最佳答案
很难说,而且我不认为这有什么“常见做法”。以无处不在的 View 模块为例,提示将常见 API 调用包装在“标准”函数中,并将对象的使用仅用于高级功能。
就我个人而言,我会根据目标 API 受众来做出决定。如果您要解决“广泛”的 Drupal 用户群,强制他们使用类可能(不幸/烦人)仍然有点牵强,因为许多兼职 PHP 用户对 OOP 没有正确的概念(哎呀,甚至“专业”) PHP 开发人员通常没有它)。
如果另一方面,您的目标受众仅由开发人员组成,那么“按原样”提供适当的 OO 层应该没问题,并且可能比否则产生的混合物更容易混淆(再次使用 View 作为示例,我经常开始使用一个方便的包装函数,并发现自己后来重写了相当多的代码,只是因为我需要这个需要直接使用对象的微小改变 - 最好保持一致并从一开始就使用对象)。
关于drupal - OO 和编写 Drupal 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2859414/