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中查看完整路径,就很难知道哪个模型是开放的。
答案 0 :(得分:2)
班级名称应表达他们所代表的内容。名为Model
的类听起来像是某些模型的通用类。相比之下,CustomerModel
表示它是客户的典范。当您从上下文中看到 Customer 时,它们也没有明确定义,但在您的特定应用程序中,其含义是明确的。所以我建议选择CustomerModel
。
如果您只有Model
和Repository
类,那么仅为这两个类声明一个完整的命名空间并不好,特别是在您定义几个两类命名空间时。也许将模型与存储库分开?