【发布时间】:2015-09-14 04:48:11
【问题描述】:
我使用我的应用程序的基本应用程序模板启动了我的日程安排应用程序,它运行良好。最初,它仅适用于 IVR,现在它开始添加多个频道(ivr、web、sms 等)。每个通道以不同的方式处理用户请求并在请求的通道中传达请求,但它所做的只是调度。所以,我从以下结构开始,
backend
common
frontend
modules
ivr
web
appt
对我来说,appt 将成为核心模块,将被所有频道模块使用。 ivr 和 web 模块处理来自不同渠道的请求。如果有人请求 appt,我如何将请求数据传递给 appt 模块并将 appt 的响应发送回用户?
如果它是一个没有模块的应用程序,它将是模型的实例化并将表单收集的值分配给模型,验证它们,保存并同步发送请求中的响应。如果我的模块依赖另一个模块来执行验证和其他业务逻辑,我该怎么做?
谁能解释一下我的方法?我应该使用模块并返回简单的单个应用程序结构吗?
编辑:
我的主要困惑是 IVR 应该作为一个模块使用,还是应该作为后端、前端和控制台应用程序使用 Yii2 高级模板作为单独的应用程序使用。我正在考虑的其他模块是订阅、脚本、通知程序。一些模块对所有渠道通用,而另一些模块则特定于 IVR。
当我将“约会 (appt)”视为模块并尝试从 Web 模块制作 appt 时,我陷入了如何实例化模型和检索错误消息的问题。
我认为模块应该是松耦合的,但对我来说,它似乎与其他模块紧密集成。您对以下内容有何建议?
-
每个目的/功能都作为模块,应该能够处理所有渠道(ivr、web 等)的请求/响应
-
每个频道都应该被投影为模块,并且应该与功能模块交互。这是否过度编译了模块系统?
-
将 IVR 作为单独的应用程序并在其中导入必要的模块并根据需要添加模块?
【问题讨论】:
标签: refactoring yii2 code-organization yii2-advanced-app