服务在 MVC 中去哪里?

All*_*nph 6 php oop model-view-controller service object

我问过这几个开发人员,每次都得到不同的答案。

假设我在一个 MVC 框架中工作,我有一个名为validator. 假设这个对象有一堆方法可以用来告诉你电子邮件或电话号码是否有效,或者给定的值是否真的包含内容。

假设我想让这个服务成为我正在创建的模型的属性。我可以简单地将它注入到我的模型类的构造方法中。但是,这个服务在 MVC 中适合什么地方?它是一个模型吗?

文件应该存放在哪里?与模型?在它自己的目录中,也许称为services?

Fél*_*ier 5

我想我对 mvc 中的模型有不同的看法[遗憾的是没有双关语],但服务绝对应该进入模型层。

首先,模型不应该是一个类。该模型是一个应用程序模型。应用程序在不同的事物中建模(包含在模型层中):实体、映射器、服务。

例如,这可能是代表此概念的文件层次结构:

应用
    控制器
    模型
        实体
        映射器
        服务
    看法

假设我想让这个服务成为我正在创建的模型的属性。我可以简单地将它注入到我的模型类的构造方法中。但是,这个服务在 MVC 中适合什么地方?它是一个模型吗?

我会假设“模型”,正如你所说的,它确实是一个Entity,一个代表域概念的对象。在这种情况下,服务应该是实体的属性。服务应该被控制器使用,去做他们被要求做的任何事情,然后映射器会根据服务所做的结果构建你的实体。


我目前的理解很大程度上来自这个答案,你一定要阅读它以进一步理解。