PHP:何时使用名称空间对类进行分组?

时间:2013-11-20 20:31:33

标签: php oop namespaces

我开始使用命名空间,但我很难理解何时使用它们。

  • 我想分组“帮助方法”
  • 我不希望扩展这个群体(不是真正的一个群体)
  • 我想我要更改变量实例

以下是我的情况示例:

$date = ''; // variable to be used in all methods

function get_sports_data() {
    get_sports_data_yahoo();
    get_sports_data_google();
    get_sports_data_bing();
}
function get_sports_data_yahoo() {} // uses $date
function get_sports_data_google() {} // uses $date
function get_sports_data_bing() {} // uses $date

我不希望单独使用辅助函数。

  1. 最好使用名为get_sports_data的命名空间和yahoo,google和bing的方法吗?
  2. 将日期设置为对象的实例是否正确,或者通过每个方法传递变量会更好吗?
  3. 我问过PHP聊天,但我觉得他们很忙。

1 个答案:

答案 0 :(得分:2)

在不知道应用程序其余部分的情况下,很难说出你需要什么,但我最初的想法是你可能有三个类和一个接口......

  • 接口DataProvider定义getSportsData的输入和输出
  • 然后,类实现该接口:
    • YahooDataProvider
    • BingDataProvider
    • GoogleDataProvider

看起来有点像矫枉过正,但既然你在询问OO设计,那将是我自然的起点。

命名空间主要用于在构成一致的模块或库时将类和接口组合在一起。通常它是这样做的,所以人们可以使用多个库,而不用担心名字冲突。

即。每组名称都有自己的空间,它们永远不会相互碰撞。

您可能决定给这些命名空间,但可能只有当它们提供您认为您可能希望在其他地方使用或推迟供公众使用的大量功能时。