laravel 中repository模式使用详解

 更新时间:2022年02月15日 15:41:06   作者:乌木喂喂威 恩耶吞温威 乌温穆扁 欧萨斯  
这篇文章主要介绍了laravel repository模式使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

什么是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模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文带你学会使用PHP接口

    一文带你学会使用PHP接口

    PHP中的Interface是一种非常重要的特性,它允许开发人员定义一组规范或者约束,以确保类之间的互操作性和兼容性。在本文中,我们将详细介绍PHP中的Interface的概念、定义、实现、使用、使用场景以及其它相关的一些知识点,需要的朋友可以参考下
    2023-04-04
  • PHP实现简易blog的制作

    PHP实现简易blog的制作

    本篇文章主要介绍了PHP实现简易blog的制作,可以显示添加删除blog,有需要的可以了解一下。
    2016-10-10
  • PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能

    PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能

    这篇文章主要介绍了PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法

    PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法

    在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了
    2016-01-01
  • 关于laravel框架中的常用目录路径函数

    关于laravel框架中的常用目录路径函数

    今天小编就为大家分享一篇关于laravel框架中的常用目录路径函数,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP网站开发中常用的8个小技巧

    PHP网站开发中常用的8个小技巧

    这篇文章主要介绍了PHP网站开发中常用的8个小技巧,本文讲解了命名、使用、PHP判断Form表单是否提交、PHP 获取字符串长度、PHP超全局对象等内容,需要的朋友可以参考下
    2015-02-02
  • PHP使用curl制作简易百度搜索

    PHP使用curl制作简易百度搜索

    这篇文章主要为大家详细介绍了PHP使用curl制作简易百度搜索的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • laravel5环境隐藏index.php后缀(apache)的方法

    laravel5环境隐藏index.php后缀(apache)的方法

    今天小编就为大家分享一篇laravel5环境隐藏index.php后缀(apache)的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • tp5实现微信小程序多图片上传到服务器功能

    tp5实现微信小程序多图片上传到服务器功能

    这最近在做一个教育类的小商城的微信小程序,用到了上传多个图片文件到服务器端。下面脚本之家小编给大家带来了tp5实现微信小程序多图片上传到服务器的方法,需要的朋友可以参考下
    2018-07-07
  • PHP生成静态页

    PHP生成静态页

    PHP生成静态页...
    2006-11-11

最新评论