在Zend框架中,脚本应该是服务还是控制器?



上下文

我正在ZF2中重构一个应用程序,该应用程序使用脚本与web服务和api同步数据。
当前每个脚本驻留在一个控制器中,该控制器通过运行index.php script_route的cron作业调用。这些控制器在模块配置中被定义为可调用的,在配置中有路由和console键,它们本质上是程序性的。
当前所有的业务逻辑都驻留在控制器中,它们都扩展了同一个类,一种中央控制器,没有工厂或接口。所有实体都是贫血的,基本上只用于理论。

<标题>

在引进全新"辅助"的过程中;例程,小的同步任务,我偶然发现了我应该把它们放在哪里的问题?使它们成为由控制器调用的可调用服务的正确方法是什么?或者他们自己应该成为控制者?它们很可能在应用程序的单个点上使用(在同步操作期间),这就是为什么我不确定服务是否合适的原因。什么是更"赞"的框架?和";OOP"如何构建这些"任务"?

首先,停止使用可调用对象,而是使用工厂来初始化您的控制器(见这里)。相信我,否则你会讨厌自己,当你试图迁移到Laminas。

逻辑至少应该被移动到某种适当的服务类(你注入到你的控制器的构造函数中),使用正常的公共方法。在这些服务方法中,您将与Doctrine的存储库(例如)进行通信。

除此之外,很难判断,因为你没有描述正是你想要组织的。

最新更新