【问题标题】:Which is the best way to name namespace and class哪个是命名命名空间和类的最佳方式
【发布时间】:2012-01-25 14:52:41
【问题描述】:

1) 具有类 "Model"

的命名空间 "Domain\Customer"
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 中的完整路径,就很难知道打开了什么模型。

【问题讨论】:

    标签: php namespaces naming-conventions classname


    【解决方案1】:

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

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

    【讨论】:

    • 是的,将模型与存储库分开可能是个好主意,因为所有存储库类都应该实现特定于存储的逻辑。谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 2013-05-18
    • 2022-12-31
    • 2014-07-21
    • 2020-07-16
    • 2020-05-02
    • 1970-01-01
    相关资源
    最近更新 更多