php开发MVC编程模式中的model和controller关系和作用

  • 2021-03-29 22:01
  • by 刘管家
  • 4353
  • 0
  • 0
  • mvc

  

  MVC是一种使用 MVC(Model View Controller 模型-视图-控制器)将业务逻辑、数据、界面显示分离设计创建 Web 应用程序的模式,其控制器的作用是将业务逻辑聚集到控制器里面,从而实现在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  Model(模型)表示应用程序核心,是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。

  View(视图)显示数据,是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。

  Controller(控制器)处理输入(写入数据库记录),是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

  MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。

  MVC 分层有助于管理复杂的应用程序,因为你可以在一个时间内专门关注一个方面。例如,你可以在不依赖业务逻辑的情况下专注于视图设计。同时,也让应用程序的测试更加容易。

  MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

  个人做项目的时候,喜欢设计好数据表以后,就在Model把规划的几乎所有数据操作全都先写成一个个独立的方法,然后在Controller或View中调用Model。当然,后来出现的没有预想到的数据库操作,如果我预计绝对不会复用这个操作,我一般就在Controller里面直接写了。不需要复用的数据库操作,我不太喜欢“Model里面写一个函数,然后Controller再写一个”才实现某个功能,能Controller里面一步实现也是可以的。当然在企业里面,我这么做可能不符合规范。

  如果你不喜欢Model,你可以选择不用,没什么好与不好。看你怎么架构你自己的程序,可以放在model层中,那么在设计方法的时候要考虑好拓展性和复用性。放在controller层的话,model层的数据操作就尽可能的原子级别操作。也可以增添一个service层,那么的话可以让controller和model层看起来更好看一些。

  标准的MVC是这样的。

  模型负责数据库读写还有各种业务逻辑。

  控制负责接收参数、过滤参数、实例化模型、调用方法、渲染模版输出、或者ajax、或者执行跳转,等等。

  但是一旦项目赶进度,直接撸在控制器吧,后期慢慢搬代码、整合。

  放哪的都有,看设计者怎么考虑吧,如果还是乱就再抽象一层。



评论