[laravel]如何在laravel中使用Repository Pattern(仓库模式)

php中文网
发布: 2016-06-23 13:05:11
原创
1155人浏览过

repository 模式主要思想是建立一个数据操作代理层,把controller里的数据操作剥离出来,这样做有几个好处:

  • 把数据处理逻辑分离使得代码更容易维护
  • 数据处理逻辑和业务逻辑分离,可以对这两个代码分别进行测试减少代码重复
  • 降低代码出错的几率
  • 让controller代码的可读性大大提高
  • 建立相应的文件夹

    在 app 文件夹里新建文件夹 Repositories,我们的相关代码都会放到这个文件夹里。然后在这个文件夹里新建一个 Interfaces 文件夹,用来放接口。

    建立一个接口

    在上面的Interfaces目录新建一个文件UserInterface.php

    <?phpnamespace    App\Repositories\Interfaces; interface UserInterface{public function get_user($user_id);} 
    登录后复制

    建立一个接口对应的实现

    <?phpnamespace App\Repositories;use App\Entity\User;use  App\Repositories\Interfaces\UserInterface; class UserRepository Implements UserInterface{public function  get_user($user_id){$user = User::find($user_id);return $user;}} 
    登录后复制

    如知AI笔记
    如知AI笔记

    如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型

    如知AI笔记 27
    查看详情 如知AI笔记

    这里是接口的实现定义你的业务逻辑

    在ServiceProvider中绑定接口

    打开app/Providers/AppServiceProvider, 在register()加入代码:

    <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider{/** Register any application services.** @return void*/  public function register()  {  $this->app->bind('App\Repositories\Interfaces\UserInterface', 'App\Repositories\UserRepository'    );}} 
    登录后复制

    ServiceProvider 是 Laravel IOC 容器实现动态换接口实现的地方,所以我们在这里绑定一下,这样我们在使用的时候,不直接使用接口实现,而是用 ioc 容器解析接口,它会帮你自动找到对应好的实现。 这就意味着,以后需要更换实现,可以在这里更换。

    使用仓库

    <?phpnamespace App\Http\V1_0\Controllers\Auth; use Illuminate\Http\Request;use App\Http\V1_0\Controllers\ApiController;use App\Repositories\Interfaces\UserInterface;  class LoginController extends    ApiController{   public function __construct(UserInterface $User) {  $this->User = $User;} public function qqlogin(Request $request){ $user_id=$request->id;  $user = $this->User->get_user($user_id);}} 
    登录后复制

    在这里使用了依赖注入

    最佳 Windows 性能的顶级免费优化软件
    最佳 Windows 性能的顶级免费优化软件

    每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号