3

1)具有类“模型”的命名空间“域\客户”

namespace MyDomain\Customer;
class Model { }
class Repository { }

namespace MyDomain\City;
class Model { }
class Repository { }

2)具有“CustomerModel”类的命名空间“MyDomain ” ?

namespace MyDomain;
class CustomerModel { }
class CustomerRepository { }

namespace MyDomain;
class CityModel { }
class CityRepository { }

3) 具有“CustomerModel”类的命名空间“MyDomain\Customer

namespace MyDomain\Customer;
class CustomerModel { }
class CustomerRepository { }

namespace MyDomain\City;
class CityModel { }
class CityRepository { }

或者 ...

我们当前的环境使用 PHP 自动加载函数,以这种方式包含文件

$o = new MyDomain\Customer\Model.php

将加载文件

MyDomain\Customer\Model.php

实际上,在我工作的地方,我们使用示例 #1 导致所有文件都被命名为 Model.php。如果不查看 Eclipse IDE 中的完整路径,就很难知道打开了什么模型。

4

1 回答 1

2

类名应该表达它们所代表的内容。一个名为的类Model听起来像是某些模型的通用类。CustomerModel,相反,表示它是客户的模型。当您脱离上下文时,客户也没有明确定义,但在您的特定应用程序中,含义是明确的。所以我建议选择CustomerModel.

如果你只有ModelRepository类,那么只为这两个类声明一个完整的命名空间是不好的,尤其是当你定义几个二类命名空间时。也许将模型与存储库分开?

于 2011-12-21T20:26:45.897 回答