CakePHP:在哪里放置’服务’逻辑

前端之家收集整理的这篇文章主要介绍了CakePHP:在哪里放置’服务’逻辑前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我来自 Java / Grails背景,似乎无法在线找到关于Cake PHP应用程序的服务逻辑应该存储在何处的明确答案.通过“服务”,我谈论的是通常通过依赖注入实例化的类,以在域对象上执行业务逻辑.他们应该能够查询任何域对象并进行更改以响应控制器操作.

目前,CakePHP的“Component”类似乎是最接近这种行为的.我可以将组件加载到任何控制器中并根据需要执行其方法.但是,我已经在几个地方读过,组件永远不应该访问数据库,这样做会导致一些陡峭的性能命中.

我也查看了CakePHP的“行为”类,它似乎根本不适合票.将域对象组织成数据结构设置似乎很有能力,但这不是服务执行的那种逻辑.此外,要将任何模型定义导入行为,我将不得不编辑模型定义本身以允许访问,这是非常尴尬的.

所以我问这个问题:服务逻辑应该存储在哪里?当然不是控制器,因为它应该只包含处理请求和发送响应的最小逻辑.

组件是CakePHP中的服务层.它们由依赖注入容器(Components Collection)构造,并传递要处理的控制器,请求和响应.

除了保持层之间的分离之外,组件可以做什么没有限制.可以直接从组件使用数据库连接或使用模型并修改请求.

如果您只对特定情况执行操作,则组件实际上非常轻量级.检查操作名称是限制组件范围的常用方法.您还可以注入设置,以便知道何时可以执行自定义服务逻辑.

猜你在找的PHP相关文章