Mat*_*oli 5 php architecture zend-framework service-layer doctrine-orm
我正在整合Zend Framework和Doctrine 2,我正在发现服务层.
现在我明白了(我错了吗?)我有2种架构可能:
每个的优点/缺点是什么?
通过将域逻辑放在模型外部来丢失OOP对我来说似乎很奇怪,所以我不明白为什么要使用服务层.
tim*_*dev 14
是什么让您认为您的服务层在您的模型外部?事实并非如此.事实上,它是模型的核心部分,还有实体,存储库等.
如果您使用的是Doctine2,则需要服务层.一个原因是您不希望您的实体知道EntityManager(伤害可测试性).另一个原因是你也不希望你的控制器驱动EM(控制器的工作不是知道持久性).
我通常使用一种架构,其中服务层是控制器与模型的接口.服务层公开对实体进行操作的函数(将它们作为参数,或返回它们,或两者都有).服务层隐藏实体的持久性.服务类驱动EM和存储库本身,或将其委托给控制器永远不会知道的其他代码.
因此,服务层提供了控制器可用于操纵业务数据的API.
| 归档时间: |
|
| 查看次数: |
1461 次 |
| 最近记录: |