这是命名命名空间和类的最佳方式


Which is the best way to name namespace and class

1)命名空间"域'客户"具有类"模型"

namespace MyDomain'Customer;
class Model { }
class Repository { }
namespace MyDomain'City;
class Model { }
class Repository { }

2)命名空间"MyDomain"与类"CustomerModel" ?

namespace MyDomain;
class CustomerModel { }
class CustomerRepository { }
namespace MyDomain;
class CityModel { }
class CityRepository { }

3)命名空间"MyDomain'Customer"与类"CustomerModel" ?

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中的完整路径,就很难知道打开了什么模型。

类名应该表达它们所代表的内容。一个叫做Model的类听起来好像是特定模型的通用类。相反,CustomerModel说它是客户的模型。Customer在上下文之外也没有明确的定义,但是在您的特定应用程序中,其含义是明确的。所以我建议选择CustomerModel

如果您只有ModelRepository类,那么仅为这两个类声明一个完整的名称空间是不好的,特别是当您要定义几个两个类的名称空间时。也许将模型从存储库中分离出来?