patrickquijano/laravel-mediator
最新稳定版本:v1.2.0
Composer 安装命令:
composer require patrickquijano/laravel-mediator
包简介
A mediator pattern implementation for Laravel
README 文档
README
This package provides a simple implementation of the Mediator pattern and CQRS (Command Query Responsibility Segregation) for Laravel applications.
Features
- Decouples commands and queries from their handlers
- Promotes loose coupling and testability
- Improves code organization
Installation
composer require patrickquijano/laravel-mediator
Usage
- Create commands or queries or events:
<?php namespace App\Commands; use LaravelMediator\Abstracts\Buses\Command; class MyCommand extends Command { public function __construct(public string $data) { } }
<?php namespace App\Queries; use LaravelMediator\Abstracts\Buses\Query; class GetUserDataQuery extends Query { public function __construct(public int $userId) { } }
- Create handlers:
<?php namespace App\Handlers; use LaravelMediator\Abstracts\Buses\Handlers\CommandHandler; class MyCommandHandler extends CommandHandler { public function handle(MyCommand $command): void { // Handle the command } }
<?php namespace App\Handlers; use LaravelMediator\Abstracts\Buses\Handlers\QueryHandler; class GetUserDataQueryHandler extends QueryHandler { public function handle(GetUserDataQuery $query): array { // Fetch user data and return it } }
- Configure event listeners in
bootstrap/app.php:<?php use Illuminate\Foundation\Application; return Application::configure(basePath: dirname(__DIR__)) ->withEvents([ __DIR__.'/../app/Handlers', ]);
- Dispatch commands or queries:
use LaravelMediator\Facades\CommandBus; CommandBus::dispatch(new MyCommand('data'));
use LaravelMediator\Facades\QueryBus; $userData = QueryBus::dispatch(new GetUserDataQuery(123));
Contributing:
Feel free to contribute by opening issues or pull requests.
统计信息
- 总下载量: 323
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-06-09