码迷,mamicode.com
首页 > 其他好文 > 详细

laravel 5.5 仓库模式 文件之间接口与实现操作

时间:2018-05-28 01:07:33      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:地方   逻辑   实现类   屏蔽   关系   不清楚   通过   服务   nbsp   

仓库模式

最直接的意思就是:

Eloquent数据(数据库)查询  方便快捷,简单明了。自己怎么写的,就怎么去调用,完全ok~

 

本质意思:

仓库就像是业务内部的数据对象集合,负责协调业务和数据映射层之间的关系,客户端对象只需要构造一个清晰的查询请求, 然后提交给仓库就行了。

仓库里的对象可以通过客户端的请求进行增删改查,客户端可以在某个场景下,通过一个简单的对象集合或者仓库中映射的代码实现合适的操作。

仓库模式把数据访问逻辑和业务逻辑中实体访问分开了,数据访问逻辑和业务逻辑只能通过接口来进行数据操作。

简单来说, 仓库模式就是一种存放数据访问逻辑的容器,它向业务层屏蔽了数据访问逻辑的细节, 也可以这样理解, 在不清楚数据层设计结构的情况下, 我们也能按照业务逻辑来访问数据层。

 

这样做(数据访问层和业务逻辑分离) 有很多好处:

  • 数据访问逻辑集中管理, 方便维护代码
  • 业务和数据访问逻辑可以分开测试
  • 减少重复代码
  • 减少编程中的错误

↓↓↓下面就是怎么去设计这个仓库模式了↓↓↓         (?⊙ω⊙)?

先在 Providers(服务商)文件夹下创建一个自己定义的文件比如:RepositoryServiceProvider.php    (使用artisan创建比较方便  php artisan make:provider RepositoryServiceProvider)

技术分享图片

 

 然后要将这个RepositoryServiceProvider.php 的类注册一下才可以的 -> 在Config目录下App.php中

技术分享图片

 

 

 

 

在App目录下创建一个自定义的文件夹(最好和Providers 里面创建的文件名字一样。方便记忆)

技术分享图片

在Repository文件目录下创建相应的文件夹(接口类和接口实现类)

技术分享图片

在两个文件夹下面创建相应的文件(先定义接口 -> Interface文件夹下)TestInterface.php

技术分享图片

 

Repositories 文件目录下 TestRepositories.php

技术分享图片

 

写完这两个文件的之后 接下来就要去第一个创建的文件中的register方法添加一行代码了  $this->app->bind  (RepositoryServiceProvider.php)

这块部分叫做 “绑定接口”   

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

技术分享图片

 

 

 接下来就是调用刚才自己写的接口了 在 Controllers  自己创建的控制器下调用~

技术分享图片

 

 然后 就完成了 仓库模式 的使用方法 So Easy~~~

laravel 5.5 仓库模式 文件之间接口与实现操作

标签:地方   逻辑   实现类   屏蔽   关系   不清楚   通过   服务   nbsp   

原文地址:https://www.cnblogs.com/wjm956/p/9098074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!