【发布时间】:2015-03-15 13:13:19
【问题描述】:
在 MVC 模式中,描述不完全是模型但它们适用于模型的类的最佳方式是什么?
例如,我有一个Order 模型,它代表系统中的客户订单。我想要一个名为Orders 的类,除其他外,它将存储Order 的集合并对其执行功能。我不相信这属于 Models 文件夹,因为它不是真正的模型。
另一个例子是用户可以导入订单,所以我将有一个处理导入的Import 类。
我不相信这些是辅助类或插件,所以我不确定它们在文件夹结构方面的位置。
任何帮助表示赞赏!
编辑:只是为了描述我的Orders 类的要点——目前,每个Order 模型都有一个validate() 函数来检查外部WMS 的库存。这个调用非常昂贵(一个旧的 FoxPro 数据库),并且在导入订单时(您可以在其中一次导入多个订单),而不是为每个订单调用 WMS 1 次,我想将此验证功能提高 1 级所以我可以对 WMS 系统进行一次调用以获取库存水平。这就是为什么我要开设一个名为Orders 的课程。我同意Orders 实际上只是Order 的集合,但是我不确定现在将这个方法放在哪里。正如Engineer Dollery 所指出的,订单关系归客户所有(一个客户有很多订单),但我认为该功能属于客户是不正确的。
【问题讨论】:
-
我称它们为服务
-
我也是这么想的。只需阅读这篇文章 (stackoverflow.com/a/6216013/460043),听起来服务层就可以了。
-
称它们为“服务”或“助手”或其他类似的东西是通过基本上在整个应用程序中散布业务逻辑来搞乱您的设计的第一步。您可能想阅读this question 和接受的答案。
-
我对您的问题投了反对票,并投票决定将其关闭为“不清楚您在问什么”。在阅读了@Jon 的答案下方的 cmets 后,现在很明显,您不是在询问设计模式,而是在询问特定 php 工具对某些东西的实现,根据 Jon 的以下 cmets 之一,它没有正确实现 MVC。
-
@EngineerDollery:我不会说“执行不正确”,我当然不是 MVC 的权威。但确实有人会看 Phalcon 的
Model并得出错误的结论。
标签: design-patterns model-view-controller