我来自Java/Grails背景,无法在网上找到关于CakePHP应用程序的服务逻辑应该存储在哪里的明确答案。“服务”指的是通常通过依赖注入实例化以对域对象执行业务逻辑的类。它们应该能够查询任何域对象并根据控制器操作进行更改。
目前,CakePHP的“Component”类似乎最符合此行为。我可以将组件加载到任何控制器中,并根据需要执行其方法。但是,我已经在几个地方读到,组件永远不应该访问数据库,这样做会导致严重的性能问题。
我还研究了CakePHP的“Behavior”类,但它似乎完全不适合此项任务。它似乎很适合将域对象组织成数据结构设置,但这不是服务执行的逻辑类型。此外,要将任何模型定义导入到行为中,我必须编辑模型定义本身以允许访问,这非常麻烦。
因此,我提出了这个问题:服务逻辑应该存储在哪里?当然不是控制器,因为它只应包含最少的处理请求和发送响应的逻辑。
目前,CakePHP的“Component”类似乎最符合此行为。我可以将组件加载到任何控制器中,并根据需要执行其方法。但是,我已经在几个地方读到,组件永远不应该访问数据库,这样做会导致严重的性能问题。
我还研究了CakePHP的“Behavior”类,但它似乎完全不适合此项任务。它似乎很适合将域对象组织成数据结构设置,但这不是服务执行的逻辑类型。此外,要将任何模型定义导入到行为中,我必须编辑模型定义本身以允许访问,这非常麻烦。
因此,我提出了这个问题:服务逻辑应该存储在哪里?当然不是控制器,因为它只应包含最少的处理请求和发送响应的逻辑。