search

Home  >  Q&A  >  body text

php - mvc分层里model的分层思路

单说model层
在运用某php框架的基础上
自己分封装的curd数据的基本通用方法、
带有一些特定逻辑的处理数据方法、
一般是以怎么结构存在model层里的
大家可以把自己做的项目的分层思路贴出来~
可不可以在层里运用静态方法
来提高速度
以上

大家讲道理大家讲道理2894 days ago408

reply all(4)I'll reply

  • 阿神

    阿神2017-04-10 15:27:06

    model是业务逻辑的层,会比较复杂。

    我一般会把model分为3层

    1. 底层:curd,和数据库直接打交道,和业务无关。
    2. 中间层:由于底层的curd和业务无关,中间层通过组合底层模型的方法来实现一些比较复杂的逻辑,比如用户登陆功能,先得过滤表单,然后调用底层的模型去数据库查询,如果成功要更新一些记录(上次登陆时间、ip等),如果失败要写一些日志。总之就是组合调用底层封装好的模型,实现常用的功能。
    3. 上层:更抽象,组合调用中间层来实现特定逻辑。这一层的更偏向非公用的,而像用户登录、注册或者发文章这类的,几乎所有系统都会用到,就写到中间层去。那上次就负责和C层打交道,通过controller得知用户要干嘛,然后把这个请求拆分成不同模块交给中间层去干。

    当然上层其实并不是必要的,这类逻辑你也可以写在controller,但是我更喜欢写在model里,这样controller会更加一目了然,分得更细,就更好查错,耦合也更低

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:27:06

    model层一般用于做针对数据模型的业务逻辑,跟control层的业务逻辑是有差别的。
    静态方法当然可以放在model层中,给control层调用。

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 15:27:06

    如果系统庞大复杂,可以进行业务领域模型建模。

    reply
    0
  • PHPz

    PHPz2017-04-10 15:27:06

    FormModel
    ActiveRecordModel
    LogicModel

    reply
    0
  • Cancelreply