patrickquijano/laravel-mediator 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

  1. 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)
        {
        }
    }
  2. 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
        }
    }
  3. Configure event listeners in bootstrap/app.php:
    <?php
    
    use Illuminate\Foundation\Application;
    
    return Application::configure(basePath: dirname(__DIR__))
        ->withEvents([
            __DIR__.'/../app/Handlers',
        ]);
  4. 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

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-06-09