我有一个基于Zend Framework的MVC PHP应用程序。 ' M'包括一个包装域模型的服务层。域模型并不严格遵循DDD,但可能并不太远。我也有一个Mapper图层,但我认为这不是为了这个问题。
我的问题是,'当前用户'适合?它是我的域模型的一部分吗?或部分服务层。
目前,我的域模型具有各种对象,其中大多数与现实世界中的某些东西相关。我有用户,组织,国家,行业等......除了这些明显的对象,我还有我称之为“Auth'宾语。它组成了一个Session对象(Zend \ Session的一个实例)以及一个User对象(显然代表了当前登录的用户)。
我的Auth对象有各种有用的方法,如login(), logout(), isLoggedIn(), isAdmin(), isOwnerOfBusiness($busId), isEmployeeOfBusiness($busId)
等。它似乎工作正常,并且很容易测试,但它与其他对象的不同之处在于它存储了请求之间的状态。那它属于哪里?
对我而言,它并不适合与域模型或服务层完美契合,但在域模型中确实感觉更自然。