1) 命名空间 "Domain\Customer" 带有类 "Model"
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
。
如果你只有 Model
和 Repository
类,那么只为这两个类声明一个完整的命名空间是不好的,尤其是当你要定义两个-类命名空间。也许将模型与存储库分开?
关于php - 哪个是命名空间和类的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8595834/