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

时间:2011-12-21 20:20:02

标签: php namespaces naming-conventions classname

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中查看完整路径,就很难知道哪个模型是开放的。

1 个答案:

答案 0 :(得分:2)

班级名称应表达他们所代表的内容。名为Model的类听起来像是某些模型的通用类。相比之下,CustomerModel表示它是客户的典范。当您从上下文中看到 Customer 时,它们也没有明确定义,但在您的特定应用程序中,其含义是明确的。所以我建议选择CustomerModel

如果您只有ModelRepository类,那么仅为这两个类声明一个完整的命名空间并不好,特别是在您定义几个两类命名空间时。也许将模型与存储库分开?