返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >laravel中repository模式使用详解
  • 907
分享到

laravel中repository模式使用详解

2024-04-02 19:04:59 907人浏览 八月长安
摘要

什么是Repository模式,laravel学院中用这样一张图来解释 编码过程当中 解耦一直是个较为热门的话题。 使用mvc设计模式开发的时候,如果需要查询数据库/操作数据库的时

什么是Repository模式,laravel学院中用这样一张图来解释

编码过程当中 解耦一直是个较为热门的话题。 使用mvc设计模式开发的时候,如果需要查询数据库/操作数据库的时候就得直接引用模型,调用模型。按照常规的调用方法直接以下所示,不使用Eloquent ORM就没法操作数据库,那么就是ORM和这个控制器有着非常之大的耦合性。

$position =  Position::createPosition($params);
$position->users()->attach($userParams);
$position->permissions()->attach($permissionParams);

控制器方面应该是只有返回相关的 不会包含任何逻辑的代码,所以为了解耦我们就该引用repository设计模式。

repository 需要的开发层面

首先我们需要定义一个接口

<?PHP
 
namespace App\Http\Repositories\Interfaces;
use App\Http\Repositories\Interfaces\BaseRepositoryInterface;
interface UserRepositoryInterface extends BaseRepositoryInterface
{
}

可以自己先构造一个基层的BaseInterface来封装常用并且基本的操作模型的方法,创建好接口之后开始绑定repository来进行实现该接口

<?php
 
namespace App\Http\Permission\Repositories\Eloquent;
use App\Http\Repositories\Eloquent\EloquentBaseRepository;
use App\Http\Permission\Repositories\Interfaces\UserRepositoryInterface;
class UserRepository extends EloquentBaseRepository implements UserRepositoryInterface
{
}

创建好之后需要在ServiceProvider当中注册并绑定该接口,保证与模型层有相关联。

 $this->app->bind(UserRepositoryInterface::class,function (){
            return new UserRepository(new User);
        });

绑定好之后就可以创建service之后使用构造函数来将该interface注入到其中 就可以书写逻辑以及相关编码了。

到此这篇关于laravel repository模式使用的文章就介绍到这了,更多相关laravel repository模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: laravel中repository模式使用详解

本文链接: https://lsjlt.com/news/139279.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • laravel中repository模式使用详解
    什么是Repository模式,laravel学院中用这样一张图来解释 编码过程当中 解耦一直是个较为热门的话题。 使用MVC设计模式开发的时候,如果需要查询数据库/操作数据库的时...
    99+
    2024-04-02
  • Laravel中如何实现Repository设计模式
    本文小编为大家详细介绍“Laravel中如何实现Repository设计模式”,内容详细,步骤清晰,细节处理妥当,希望这篇“Laravel中如何实现Repository设计模式”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-07-04
  • 基于JPA的Repository使用详解
    目录Spring Data JPARepositoryCrudRepositoryPagingAndSortingRepositoryJpaRepositoryJpaSpecific...
    99+
    2024-04-02
  • Laravel中Kafka的使用详解
    本文并没有kafka的安装教程,本文是针对已经安装kafka及其配置好kafka的php拓展并且使用laravel框架进行开发项目,配置一个可供laravel框架使用的生产及消费...
    99+
    2024-04-02
  • 详解Laravel模型事件和模型事件在Trait中的使用
    目录模型事件事件类型boot 方法和事件注册boot 在 traits 中的使用boot(启动) 和 initialize(初始化)Boot(启动)Initialize (初始化)模...
    99+
    2023-03-07
    Laravel模型事件Trait Laravel Trait
  • Laravel中间件的使用详解
    目录一:创建中间件二:前置和后置中间件1:前置中间件2:后置中间件三:注册中间件1:注册全局中间件2:为路由分配中间件3:中间件组4:排序中间件5:中间件参数6:Terminable...
    99+
    2023-02-08
    Laravel中间件使用 Laravel中间件
  • .NET 6开发TodoList应用之实现Repository模式
    目录需求目标原理和思路实现通用Repository实现引入使用验证总结参考资料需求 经常写CRUD程序的小伙伴们可能都经历过定义很多Repository接口,分别做对应的实现,依赖注...
    99+
    2024-04-02
  • ThinkPHP中如何使用 Repository包
    这期内容当中小编将会给大家带来有关ThinkPHP中如何使用 Repository包,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ThinkPHP>= thinkphp 6.0.*安装教程Compo...
    99+
    2023-06-20
  • Java中常用的设计模式之模板模式详解
    目录优点缺点使用场景一、实现方式1、游戏抽象类2、LOL游戏类3、CF游戏类二、测试总结优点 封装不变部分,扩展可变部分。 提取公共代码,便于维护。 行为由父类控制,子类实现。 缺点...
    99+
    2024-04-02
  • Angular中的结构指令模式及使用详解
    目录你将学到什么Angular 结构指令是什么?Angular 结构指令是怎么工作的?结构指令的例子怎么使用 *ngIf 指令怎么使用 *ngFor 指令怎么使用 *ngSwitch...
    99+
    2024-04-02
  • python中模块导入模式详解
    目录模块导入1.1 import导入模块1.2 from 模块名 import 导入模板的方法1.3 as 关键字OS模块操作文件OS模块的作用模块的制作、发布、安装3.1 模块制作...
    99+
    2024-04-02
  • Go设计模式原型模式考查点及使用详解
    目录前言什么是原型模式使用原型模式的目的使用场景利用原型模式实现文档树总结前言 如果一个类的有非常多的属性,层级还很深。每次构造起来,不管是直接构造还是用建造者模式,都要对太多属性进...
    99+
    2022-12-09
    Go原型模式考查点 Go 设计模式
  • 详解SpringDataJPA中Repository的接口查询方法
    目录1.查询方法定义详解2.搜索查询策略3.查询创建4.属性表达式5.特殊参数处理6.限制查询结果7. repository方法返回Collections or Iterables8...
    99+
    2024-04-02
  • Java中常用的设计模式之策略模式详解
    目录优点缺点使用场景一、实现方式1、订单类型枚举类2、订单处理接口3、普通订单处理器4、秒杀订单处理器5、拼团订单处理器6、下单管理器二、测试1、引入依赖2、测试用例总结优点 1.算...
    99+
    2024-04-02
  • Java中常用的设计模式之工厂模式详解
    目录优点缺点使用场景一、实现方式1、定义一个接口2、定义两个接口实现类3、定义一个工厂类二、测试总结优点 1.一个调用者想创建一个对象,只要知道其名称就可以了。 2.扩展性高,如果想...
    99+
    2024-04-02
  • Java中常用的设计模式之单例模式详解
    目录注意优点缺点使用场景一、实现方式二、实现方式三、测试总结注意 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 优点...
    99+
    2024-04-02
  • 详解java设计模式中的门面模式
    门面模式又叫外观模式(Facade Pattern),主要用于隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。 我们知道电视剧操作很简单,但是里面的设计和原理很少人明...
    99+
    2024-04-02
  • Python设计模式中的策略模式详解
    目录策略模式命令模式策略模式 策略模式是一个经典的模式,简化代码。 电商领域有个功能明细可以使用“策略”模式,就是根据客户的属性或订单中的商品计算折扣。 比如...
    99+
    2023-02-08
    Python策略模式 Python设计模式
  • PHP设计模式中观察者模式详解
    目录简介适用场景缺点补充代码(自定义实现)简介 观察者模式是行为型模式的一种,定义了对象间一对多的关系。当对象的状态发生变化时候,依赖于它的对象会得到通知。 适用场景 类似触发钩子事...
    99+
    2022-12-20
    PHP观察者模式 PHP设计模式
  • Java设计模式中的外观模式详解
    目录模式介绍UML类图外观模式案例:外观模式的注意事项和细节模式介绍 外观模式(Facade) ,也叫“过程模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作