laravel repository模式使用
编码过程当中 解耦一直是个较为热门的话题。 使用MVC设计模式开发的时候,如果需要查询数据库/操作数据库的时候就得直接引用模型,调用模型。按照常规的调用方法直接以下所示,不使用Eloquent ORM就没法操作数据库,那么就是ORM和这个控制器有着非常之大的耦合性。
$position = Position::createPosition($params);
$position->users()->attach($userParams);
$position->permissions()->attach($permissionParams);
控制器方面应该是只有返回相关的 不会包含任何逻辑的代码,所以为了解耦我们就该引用repository设计模式。
repository 需要的开发层面
首先我们需要定义一个接口
<?phpnamespace App\Http\Repositories\Interfaces;use App\Http\Repositories\Interfaces\BaseRepositoryInterface;interface UserRepositoryInterface extends BaseRepositoryInterface
{}
可以自己先构造一个基层的BaseInterface来封装常用并且基本的操作模型的方法,创建好接口之后开始绑定repository来进行实现该接口
<?phpnamespace 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数据仓库使用 Star.hou红楼一梦
laravel repository数据仓库 Repository 模式 为了保持代码的整洁性和可读性,使用Repository Pattern 是非常有用的.事实上,我们也不必仅仅为了使用这个特别的 ...
- 分享基于EF6、Unitwork、Autofac的Repository模式设计
目录 分享基于EF6.Unitwork.Autofac的Repository模式设计 一.实现的思路和结构图 二.Repository设计具体的实现代码 三.Repository设计的具体的使用 四. ...
- 分享基于Entity Framework的Repository模式设计(附源码)
关于Repository模式,在这篇文章中有介绍,Entity Framework返回IEnumerable还是IQueryable? 这篇文章介绍的是使用Entity Framework实现的Rep ...
- Repository模式
近来发现很多ASP.NET MVC的例子中都使用了Repository模式,比如Oxite,ScottGu最近发布的免费的ASP.NET MVC教程都使用了该模式.就简单看了下. 在<企业架构模 ...
- Repository模式与UnitOfWorks模式的运用
软件开发就像是一个江湖,而设计模式就是一本高深的秘籍每读一次.用一次.想一次都能得到新的领悟,让我们的设计技能有所提高.开始时我们可能会"为了模式而模式",让代码变得乱78糟甚至难 ...
- 基于NHibernate的UnitOfWork+Repository模式(AutoFac)–Part2
非常感谢各位在之前comment中提出的意见..确实Razor语法介绍的文章错别字太多,影响大家阅读. 前面的文章介绍了如何在asp.net中中UnitOfWork模式以及Repository模式的使 ...
- Repository模式(转载)
近来发现很多ASP.NET MVC的例子中都使用了Repository模式,比如Oxite,ScottGu最近发布的免费的ASP.NET MVC教程都使用了该模式.就简单看了下. 在<企业架构模 ...
- MVC架构中的Repository模式 个人理解
关于MVC架构中的Repository模式 个人理解:Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间.它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提 ...
- MVC+LINQToSQL的Repository模式之(二)数据基类
namespace Data.TEST { /// <summary> /// 数据操作基类 /// </summary> public abs ...
最新文章
- JSTL标签之核心标签
- 求二叉树指定结点到根的路径c语言,二叉树根节点到叶子结点和为指定值的路径...
- Lync Server 2013企业版部署系列之五:前端服务器软件准备
- linux 添加path环境变量中,在Linux里设置环境变量PATH的方法是什?
- CCIE-LAB-第六篇-IPV6+SLLAC
- B+树索引和哈希索引
- android 开发工具类,Android中常用开发工具类—持续更新...
- java 有三个map,第一个map是第二个和第三个map的key的对应映射,对比第二个map的值和第三个map对的值是否一致
- 什么情况下你的工作最为成功_在不倦怠的情况下开始成功学习
- nginx 查看当前的连接数
- 食品工业中HACCP应用现状和未来发展(转载)
- vue-scroller回到顶部
- JavaScript简易文字对战游戏
- sentaurus TCAD的安装与使用
- 探索硅谷奇迹的本质--周末荐书之《硅谷之谜》
- python-将csv转txt
- 10-25 查询选修张老师讲授所有课程的学生
- Ubuntu环境下挂载新硬盘
- 基于不同策略的英文单词的词频统计和检索系统(C++)
- react 实现渐变色背景样式
热门文章
- 学生党毕业论文福利,参考文献的排版方法(利用bib文件的方式)
- bootstrap-fileinput的简单使用(图片上传和编辑)
- C语言程序设计运动会管理系统(一)
- Redis搭建主从复制实现高可用
- qt通过QComboBox实现文本框自动记忆、补全和下拉选项填写
- uni-app 调用相机或相册图片并转为base64格式上传图片
- 实现unity三维动画播放以及触摸翻转放大缩小
- java mysql单库多表_第69节:Java中数据库的多表操作
- TokenGazer一问到底 | 第31期:研究员 vs OracleChain
- 如何完成Nexus 9开机后的激活流程