zoukankan      html  css  js  c++  java
  • Laravel 6 框架中使用Repository模式

    为什么要使用Repository

    若将数据库逻辑都写在model,会造成model的肥大而难以维护,基于SOLID原则,我们应该使用Repository模式辅助model,将相关的数据库逻辑封装在不同的repository,方便中大型项目的维护

    数据库逻辑

    在CRUD中,CUD比较稳定,但R的部分则千变万化,大部分的数据库逻辑都在描述R的部分,若将数据库逻辑写在controller或model都不适当,会造成controller与model肥大,造成日后难以维护。

    Model
    使用repository之后,model仅当成Eloquent class即可,不要包含数据库逻辑,仅保留以下部分:

    Property:如$table,$fillable…等。
    Mutator:包括mutator与accessor。
    Method:relation类的method,如使用hasMany()与belongsTo()。
    注释:因为Eloquent会根据数据库字段动态产生property与method,等。若使用Laravel IDE Helper,会直接在model加上@property与@method描述model的动态property与method。

    在中大型项目,会有几个问题:

    将数据库逻辑写在controller,造成controller的肥大难以维护。
    违反SOLID的单一职责原则:数据库逻辑不应该写在controller。
    controller直接相依于model,使得我们无法对controller做单元测试。
    比较好的方式是使用repository:
    将model依赖注入到repository。
    将数据库逻辑写在repository。
    将repository依赖注入到service。

  • 相关阅读:
    以“处理器”为中心的时代过去了
    新宿事件里的一句话
    2
    了解企业要招的,再去学相应的东西
    maxim
    ORA00980 无效同名
    Oracle 字符集的查看和修改
    Linux挂载磁盘
    ORA28002: 7 天之后口令将过期
    ORAdump函数
  • 原文地址:https://www.cnblogs.com/jellysheep/p/15000908.html
Copyright © 2011-2022 走看看