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

相关文章

  • php5.x禁用eval的操作方法

    php5.x禁用eval的操作方法

    这篇文章主要介绍了php5.x禁用eval的操作方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • PHP时间戳与日期之间转换的实例介绍

    PHP时间戳与日期之间转换的实例介绍

    本篇文章小编为大家介绍,PHP时间戳与日期之间转换的实例介绍。需要的朋友参考下
    2013-04-04
  • 在Laravel框架里实现发送邮件实例(邮箱验证)

    在Laravel框架里实现发送邮件实例(邮箱验证)

    这篇文章主要介绍了在Laravel框架里实现发送邮件(邮箱验证)的相关资料,需要的朋友可以参考下
    2016-05-05
  • laravel5使用freetds连接sql server的方法

    laravel5使用freetds连接sql server的方法

    这篇文章主要给大家介绍了关于laravel5使用freetds连接sql server的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • ThinkPHP中的关联模型注意点

    ThinkPHP中的关联模型注意点

    这篇文章主要介绍了初学ThinkPHP中的关联模型注意点,需要的朋友可以参考下
    2014-06-06
  • thinkphp中memcache的用法实例

    thinkphp中memcache的用法实例

    这篇文章主要介绍了thinkphp中memcache的用法,较为详细的讲述了memcache的安装、运行以及在ThinkPHP中的使用方法,是非常具有实用价值的技巧,需要的朋友可以参考下
    2014-11-11
  • PDO操作MySQL的基础教程(推荐)

    PDO操作MySQL的基础教程(推荐)

    下面小编就为大家带来一篇PDO操作MySQL的基础教程(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • yii2 modal弹窗之ActiveForm ajax表单异步验证

    yii2 modal弹窗之ActiveForm ajax表单异步验证

    这篇文章主要介绍了yii2 modal弹窗之ActiveForm ajax表单验证的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 神盾加密解密教程(二)PHP 神盾解密

    神盾加密解密教程(二)PHP 神盾解密

    前些日子一个朋友丢了个shell给我,让我帮忙解密,打开源码看了下写着是 “神盾加密” , 牛逼闪闪的样子、 百度下发现神盾是个很古老的东西,最后一次更新是在 2012-10-09。和他相似的另一款是phpjm,有人说是神盾抄袭phpjm的,这些都不是我们所要关心的问题、phpjm一直在更新,而神盾貌似不搞了,我们分析下神盾,顺便写成工具,方便大家使用(因为他不更新,所以就不用担心解密工具失效问题了)。
    2014-06-06
  • Yii2 rbac权限控制操作步骤实例教程

    Yii2 rbac权限控制操作步骤实例教程

    这篇文章主要介绍了Yii2 rbac权限控制操作步骤实例教程的相关资料,需要的朋友可以参考下
    2016-04-04

最新评论