我正在编写一堆通用但相关的函数以供不同的对象使用。我想对这些函数进行分组,但不确定是应该将它们放在一个类中还是简单地放在一个平面库文件中。
将它们当作一个类来对待似乎是不对的,因为没有一种对象会使用它们,而且这样一个包含所有这些函数的类可能不一定具有任何属性。
将它们视为平面库文件似乎太简单了,找不到更好的词。
这方面的最佳做法是什么?
最佳答案
检查命名空间:
http://www.php.net/manual/en/language.namespaces.rationale.php
将它们包装在一个无用的类中是命名空间概念的一种变通实现。这个概念可以让您避免与大型项目或插件/模块类型部署中的其他功能发生冲突。
编辑
坚持使用 PHP 5.2?
使用单独的文件来组织实用程序函数并没有错。一定要用注释记录它们,这样您就不会得到 bunchafunctions.php
,这是一个包含 20,000 个目的可疑的程序代码文件。
前缀也没有错。使用前缀是另一种组织功能相似的方法,但一定要避免使用这些语言已经保留的“伪命名空间”。具体来说,“__”被 PHP [ reference 保留为前缀。 ].要格外小心,如果您担心来自其他库的函数冲突,您还可以将函数声明包装在 function_exists
检查中:
if (!function_exists('myFunction')) {
function myFunction() {
//code
}
}
您还可以重新考虑您的对象结构,也许这些实用函数更适合作为所有其他对象都可以扩展的基类中的方法。看看继承:http://www.php.net/manual/en/language.oop5.inheritance.php .基类模式是一种常见且非常有用的模式:
abstract class baseObject {
protected function doSomething () {
print 'foo bar';
}
public function getSomething () {
return 'bar foo';
}
}
class foo extends baseObject {
public function bar () {
$this->doSomething();
}
}
$myObject = new foo();
$myObject->bar();
echo $myObject->getSomething();
您可以在这里试验上面的代码:http://codepad.org/neRtgkcQ
关于php - 将类作为方法的集合而没有属性是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5982456/