moffhub / maker-checker
一个用于帮助管理严格的 Maker-Checker 模式的 Laravel 扩展包
v0.0.8
2024-08-28 23:41 UTC
Requires
- php: ^8.2
- illuminate/support: ^11
- sourcetoad/enhanced-resources: ^7.0
Requires (Dev)
- laravel/pint: ^1.17
- orchestra/testbench: ^9.2
- phpstan/phpstan: ^1.12
- phpunit/phpunit: ^11.3
README
MakerChecker 是一个提供简单方式在 Laravel 应用程序中实现 Maker-Checker 模式的包。
安装
您可以通过 composer 安装此包
composer require moffhub/maker-checker
此包依赖于 sourcetoad\enhanced-resources
,您也可以通过 composer 安装
composer require sourcetoad\enhanced-resources
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Moffhub\MakerChecker\MakerCheckerServiceProvider" --tag="config"
这是发布配置文件的内容
用法
首先,您需要将 ChecksRequests
特性添加到您想要检查其角色和权限的模型中,通常是 User
模型。
use Moffhub\MakerChecker\Traits\ChecksRequests; class Post extends Model { use ChecksRequests; }
然后,您可以使用 makerChecker
方法创建新记录。
if (auth()->user()->requiresApproval('create', Post::class)) { $approvalRequest = MakerChecker::request() ->toExecute( $approvableActionClass, (array) $data, ) ->madeBy(auth()->user()) ->description('Create Posts') ->save(); return MakerCheckerResource::make($approvalRequest) ->format(MakerCheckerResource::SIMPLE) ->response() ->setStatusCode(Response::HTTP_MULTI_STATUS); }
可审批的操作
此库支持创建、删除、更新和执行操作。您可以通过扩展 ApprovableAction
类来创建自己的操作。
这可以通过以下方式配置:
对于执行操作,您还可以传递一个包含可以审批请求的角色数组的数组和每个角色审批请求所需批准的数量
MakerChecker::request()->toExecute( $approvableActionClass, (array) $data, [ 'admin'=> 2, 'client' => 3, ], )
对于创建操作
MakerChecker::request()->toCreate( $createActionClass, (array) $data, )
对于更新操作
MakerChecker::request()->toUpdate( $updateActionClass, (array) $data, )
对于删除操作
MakerChecker::request()->toDelete( $deleteActionClass, (array) $data, )