asp-devteam / repository
Requires
- php: ^7.2.5
- flugger/laravel-responder: ^3.1
- illuminate/support: ~7
Requires (Dev)
- fzaninotto/faker: ^1.4
- mockery/mockery: ^1.3.1
- nunomaduro/collision: ^4.1
- nunomaduro/phpinsights: ^1.14
- phpunit/phpunit: ^9.0
- v7.x-dev
- v7.2.13
- v7.2.12
- v7.2.11
- v7.2.10
- v7.2.9
- v7.2.8
- v7.2.7
- v7.2.6
- v7.2.5
- v7.2.4
- v7.2.3
- v7.2.2
- v7.2.1
- v7.2.0
- v7.1.0
- v7.0.2
- v7.0.1
- v7.0.0
- v6.x-dev
- v6.4.0
- v6.3.13
- v6.3.12
- v6.3.11
- v6.3.10
- v6.3.9
- v6.3.8
- v6.3.7
- v6.3.6
- v6.3.5
- v6.3.4
- v6.3.3
- v6.3.2
- v6.3.1
- v6.3.0
- v6.2.2
- v6.2.1
- v6.2.0
- v6.1.12
- v6.1.11
- v6.1.10
- v6.1.9
- v6.1.8
- v6.1.7
- v6.1.6
- v6.1.5
- v6.1.4
- v6.1.3
- v6.1.2
- v6.1.1
- v6.1.0
- v6.0.1
- v6.0.0
- v0.x-dev
- v0.1.31
- v0.1.30
- v0.1.29
- v0.1.28
- v0.1.27
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-master
This package is auto-updated.
Last update: 2020-09-11 09:41:35 UTC
README
这是一个用于在laravel中轻松开发模型CRUD的库。
它提供了一些特性和类,允许您创建处理自动分页和以标准格式创建JSON响应的控制器。此外,它提供了一系列特性和类,以实现所谓的模型驱动存储库,这使得模型可以作为数据存储库来处理过滤、分页、CRUD操作,并提供了一种简单的方法来创建您自己的自定义操作和验证。
要求
此包需要
- PHP 7.2+
- Laravel 7+ 或 Lumen 7+
安装
Laravel的兼容性如下
Laravel | laravel-repository |
---|---|
5.7 | ^0.1 |
5.8 | ^0.1 |
6.x | ^6.0 |
7.x | ^7.0 |
要将依赖项添加到Laravel 7.x项目,请运行
composer require asp-devteam/laravel-repository "^7.0"
Laravel
注册服务提供商
将以下行追加到 config/app.php
中的 providers
键以注册包
ASP\Repository\RepositoryServiceProvider::class,
该包支持自动发现,因此如果您使用Laravel 5.5或更高版本,您可能可以跳过注册服务提供商和外观,因为它们将自动注册。
发布资源
要将可用的翻译和配置发布到您的应用程序中,以便进行自定义,只需运行
php artisan vendor:publish --tag=repository.translations
php artisan vendor:publish --tag=repository.config
用法
简要介绍此包的用法。
本文档假设您对Fractal的工作原理有一些了解。
扩展 ASP\Repository\Base\Controller
该包有一个 Controller
类,它实现了一个中间件,用于处理索引的分页
use ASP\Repository\Base\Controller;
class YourController extends Controller
{
}
使用模型存储库
选项 1:使用提供的存储库
要使用存储库,您可以在模型类中使用它
use ASP\Repository\Traits\Repository;
class YourModel extends Model
{
use Repository;
}
这将使以下方法对您可用
getAllRecords(Filter $filters = null, array $pagination = null)
getRecordById($id)
createRecord(Request $request)
updateRecordById($id, Request $request)
deleteRecordById($id, Request $request)
选项 2:创建自己的存储库
您还可以扩展存储库并添加自己的方法,这还允许您使用模型验证器
use ASP\Repository\Traits\Repository;
...
trait YourRepository
{
use Repository;
}
use ASP\Repository\Traits\Repository;
class YourModel extends Model
{
use YourRepository, YourModelValidator;
}
使用验证器
use ASP\Repository\Traits\Validator;
trait YourModelValidator
{
use Validator;
/**
* @return void
*/
protected static function boot()
{
parent::boot();
self::setBaseRules(
[
'name' => [
'laravel rules here'
],
]
);
}
/**
* @return array
*/
protected static function getCustomRules()
{
$rules = self::getBaseRules();
return array_merge(
$rules,
[
'new rules'
]
);
}
}
使用过滤器
有关详细信息,请参阅 ASP\Repository\Base\Filter
use ASP\Repository\Base\Filter;
class PetFilters extends Filter
{
public function <filterName>(<$parameters>)
贡献
有关详细信息,请参阅 CONTRIBUTING
安全
如果您发现任何与安全相关的问题,请通过电子邮件 asp-devteam@alter-solutions.com 联系,而不是使用问题跟踪器。
许可
MIT许可 (MIT)。有关更多信息,请参阅 许可文件
版权 2020 Alter Solutions Portugal