laravel 中repository模式使用详解

2022-04-17 00:49:14

什么是Repository模式,laravel学院中用这样一张图来解释

laravel 中repository模式使用详解

编码过程当中 解耦一直是个较为热门的话题。 使用MVC设计模式开发的时候,如果需要查询数据库/操作数据库的时候就得直接引用模型,调用模型。按照常规的调用方法直接以下所示,不使用Eloquent ORM就没法操作数据库,那么就是ORM和这个控制器有着非常之大的耦合性。

$position =  Position::createPosition($params);$position->users()->attach($userParams);$position->permissiAppHttpRepositoriesInterfacesBaseRepositoryInterface;interface UserRepositoryInterface extends BaseRepositoryInterface{}

可以自己先构造一个基层的BaseInterface来封装常用并且基本的操作模型的方法,创建好接口之后开始绑定repository来进行实现该接口

<?php namespace AppHttpPermissionRepositoriesEloquent;use AppHttpRepositoriesEloquentEloquentBaseRepository;use AppHttpPermissionRepositoriesInterfacesUserRepositoryInterface;class UserRepository extends EloquentBaseRepository implements UserRepositoryInterface{}

创建好之后需要在ServiceProvider当中注册并绑定该接口,保证与模型层有相关联。

 $this->app->bindtaaXN(UserRepositoryInterface::class,function (){            return new UserRepository(new User);        });

绑定好之后就可以创建service之后使用构造函数来将该interface注入到其中 就可以书写逻辑以及相关编码了。

相关文章 大家在看