adityadarma / laravel-service-repository
轻松创建模式服务和存储库
1.1.8
2024-05-18 15:54 UTC
Requires
- php: ^8.0
- laravel/framework: ^9.0|^10.0|^11.0
README
要求
- 最低 PHP ^8.0
- Laravel ^9.x
安装
您可以通过 composer 安装最新版本的包
composer require adityadarma/laravel-service-repository
安装核心基础服务的底层服务部分
php artisan service-repository:install
用法
*服务
创建服务
php artisan make:service nameService
用于控制器
protected NameService $nameService; public function __construct( NameService $nameService ) { $this->nameService = $nameService; } public function data() { $this->nameService->functionName()->getData(); } public function json(Request $request) { $this->nameService->functionName()->toJson(); } public function withResource(Request $request) { $this->nameService->functionName()->toJsonFromResource(ClassResource::class); }
使用服务 & 异常
所有异常都必须有对 CustomException 类的处理
public function nameMethod() { try { ......... if (false) { throw new CustomException('Error exception'); } .......... // Call toJsonFromResource at controller return $this->setData($data) ->setMessage('Message data') ->setCode(200); // OR // Call toJson at controller return $this->setData($data) ->setResource(ClassResource::class) ->setMessage('Message data') ->setCode(200); } catch (Exception $e) { return $this->exceptionResponse($e); } }
*存储库
创建存储库
php artisan make:repository nameRepository --model
- --model 将使用构造模型创建存储库
您可以在 "GeneralFunctionRepository" 特质中使用通用函数。
用于服务
protected NameRepository $nameRepository; public function __construct( NameRepository $nameRepository ) { $this->nameRepository = $nameRepository; } public function data() { $this->nameRepository->functionName(); }
*请求
php artisan make:request nameRequest --single
- --single 将所有方法转换为单文件请求(存储、更新、删除)
自定义命令请求,有 failedValidation 以保持一致的 API 响应。我还添加了一个参数,这样我们就可以在一个 FormRequest 文件中进行验证。将消息功能添加到自定义响应属性消息中
*模型
php artisan make:model name --trait --repository
- --trait 将特质文件用于模型,如访问器、修改器、关系和作用域
- --repository 将创建具有构造模型的存储库文件
自定义命令模型,我们添加了两个参数类型。您可以将它们分开为特质(访问器、修改器、关系和作用域)并添加文件存储库。
许可证
此包根据 MIT 许可证授权。享受!