mtkh73 / repo-handler
使用存储库模式优化和使您的项目可重写
v1.2.0
2020-05-02 08:34 UTC
Requires
- php: ^7.1.3|7.2.*|7.3.*|7.4.*
- laravel/framework: ~5.8|6.*|7.*
Requires (Dev)
- orchestra/testbench: ~3.0
This package is auto-updated.
Last update: 2024-09-16 04:49:27 UTC
README
关于RepositoryPattern
Repository模式是企业级应用中最受欢迎的模式之一。它限制我们直接与应用程序中的数据进行交互,并为数据库操作、业务逻辑和应用程序的UI创建了新的层级。使用Repository模式有许多优点
- 您的业务逻辑可以在没有数据访问逻辑的情况下进行单元测试;
- 数据库访问代码可以重用;
- 您的数据库访问代码是集中管理的,因此易于实现任何数据库访问策略,如缓存;
- 实现领域逻辑很容易;
- 您的领域实体或业务实体通过注释进行强类型化;等等。
如何使用此包
php artisan make:repository ModelName
安装此包后,您的Artisan命令将添加一个名为 make:repository 的命令。使用此命令,您可以为您的基本类创建存储库类。
运行此命令后,如果模型存在,您的应用目录中会创建一个名为Repository的目录。要使用您的存储库类,您可以在任何控制器中注入它。之后,您就可以轻松使用存储库类中的所有功能。
等等
php artisan make:repository Models\User
在这个例子中,您可以看到一个名为setFilters的方法!
您可以在查询上应用您的任何Eloquent过滤器。但是这些过滤器在哪里呢?
您可以使用此命令创建您的过滤器php artisan make:filter With'
创建过滤器后,此类的结构如下
您的过滤器的实现必须在handle方法中!args变量包含您在setFilters方法上设置的值!
注意:创建过滤器后,您必须在存储库配置文件上设置过滤器。
在存储库目录中,有四样东西!
- 一个BaseRepository类,它是您在项目中创建的所有存储库的父类,并包含一些在您的存储库类中可能相同的函数。
- 一个BaseRepositoryInterface类
- 一个RepositoryServiceProvider,用于将您的存储库类绑定到之前创建的接口。
- 最后,创建了一个包含存储库类的以模型名称命名的目录和一个以合约命名的目录。
注意:如果您想使用您的存储库类及其合约,您必须在RepositoryServiceProvider类中将它们绑定在一起!
许可
RepositoryPattern-handler是开源软件,许可协议为MIT许可。