【问题标题】:Where to put Service/Data Access Classes in a Zend Framework App在 Zend 框架应用程序中放置服务/数据访问类的位置
【发布时间】:2010-12-24 14:31:02
【问题描述】:
我最初想了解如何从实体类中访问 Doctrine 2 的实体管理器。但我看到另一个问题Using EntityManager inside Doctrine 2.0 entities,得知我应该使用服务类。我想知道应该将 Zend 框架应用程序放在哪里?它也被称为 DAO(数据访问对象)吗?我正在考虑将其命名为 DAO 而不是 Service as Service 听起来很像供外部网站使用的东西(如 Web 服务)?
我在想Application_Models_DAO_User?
【问题讨论】:
标签:
zend-framework
data-access-layer
doctrine-orm
【解决方案1】:
服务类是自动加载器映射的一部分。就像Application_Model_Something 可以在application/models 中找到,对于服务也是如此。
应用服务Application_Service_Something 应该位于:application/services/Something.php
当您在模块中使用服务类时,例如Blog_Service_Something,它们需要位于:application/modules/blog/services/Something.php
我认为像实体管理器这样的类不应该是您的控制器或模型的一部分,而应该位于服务类中。
【讨论】:
-
当然,您可以使用Resource Autloaders 自定义您自己的自动加载器映射,其中Zend_Application_Module_Autoloader(通常在Bootstrap 中创建)就是一个示例。