yaza/laravel-repository-service

简单的 Laravel 仓库、服务模式


README

使用简单的仓库,您可以得到仓库模式的强大功能,而无需编写太多代码。该包自动将接口绑定到实现,您只需要在配置中更改当前使用的实现即可!

要求

  • 最低 PHP ^8.2

安装

您可以通过 composer 安装最新版本的包

$ composer require yaza/laravel-repository-service

特定版本

# for laravel 10
$ composer require yaza/laravel-repository-service:"^4.0"
# for laravel 9
$ composer require yaza/laravel-repository-service:"^3.2"

使用 (重要) 发布配置文件

php artisan vendor:publish --provider="LaravelEasyRepository\LaravelEasyRepositoryServiceProvider" --tag="easy-repository-config"

快速使用

您也可以使用 artisan 创建仓库、服务或两者都行

php artisan make:repository User
// or
php artisan make:repository UserRepository

// or create together with a service
php artisan make:repository User --service
// or
php artisan make:repository UserRepository --service

// or create a service separately
php artisan make:service User
// or
php artisan make:service UserService
// or
php artisan make:service UserService --repository

// create service with blank template
php artisan make:service UserService --blank

如何更改绑定接口到新的类实现

将此配置添加到 AppServiceProvider

$this->app->extend(Interface::class, function ($service, $app) {
    return new NewImplement($service);
});

文档

注意:当您创建服务时,默认使用的 api 模板,在 api 模板中使用服务内部的数据设置获取,如何使用可以查看 src/Traits/ResultService.php,如果创建服务时需要空白模板,则需要添加参数 --blank,例如:php artisan make:service User --blank。

带有 api 模板的示例设置获取服务

// getter (on service called)
$serviceName->getData()
$serviceName->getCode()
$serviceName->getMessage()
$serviceName->getError()
// setter (in service)
$this->setCode()
$this->setData()
$this->setError()
$this->setMessage()

更多详细信息将在版本 5 的文档中解释。

前往指南 文档 V5

变更日志

请参阅 变更日志 了解最近更改的更多信息。

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。