全局辅助函数应该是命名空间吗?

时间:2015-01-14 01:12:35

标签: php namespaces

假设我有一些辅助函数,例如a̶r̶r̶y̶y̶_̶r̶e̶d̶u̶c̶e̶'array_operation'。

我应该在全局命名空间中声明此函数并将其与核心array_*函数一起使用,还是应在特定于供应商的命名空间中使用它,如use function Vendor\Helpers\Arrays\array_operation;

全局命名空间的唯一缺点是可能不清楚声明函数的位置,但也意味着无论何时想要使用它都不需要显式地use函数。

这会被认为是更好的做法吗?

1 个答案:

答案 0 :(得分:1)

命名空间代码的原因是避免命名与其他供应商的代码冲突。对于类来说,这同样适用于函数或常量(或变量,但没有人使用全局变量, riiiight ?)。你的功能是"辅助功能"无关紧要,他们仍然在运作。实际上,"辅助功能"往往有相当一般的名字,因此更有可能与其他名字发生冲突。所以:是的,命名他们。

实际上,如果有意义的话,您可能会考虑将它们保持为完全独立的包装。我在这个类别中的个人最爱之一是Functional PHP,一个非常好的包#34帮助功能"所有这些都围绕着提供功能原语的前提。