⚡ Zero Config
Automatically discovers Handlers and Events using modern PHP Attributes (`#[RequestHandler]`, `#[EventHandler]`). No arrays to map.
A modern CQRS Mediator using PHP 8 Attributes, auto-discovery, and routing pipelines.
Decouple your business logic, routing, and side effects instantly.
// app/Http/Actions/RegisterUserAction.php
use Ignaciocastro0713\CqbusMediator\Attributes\Routing\Api;
use Ignaciocastro0713\CqbusMediator\Attributes\Pipelines\Pipeline;
use Ignaciocastro0713\CqbusMediator\Traits\AsAction;
#[Api]
#[Pipeline(DatabaseTransactionPipeline::class)]
class RegisterUserAction
{
use AsAction;
public function __construct(private readonly Mediator $mediator) {}
public static function route(Router $router): void
{
$router->post('/register');
}
public function handle(RegisterUserRequest $request): JsonResponse
{
$user = $this->mediator->send($request);
$this->mediator->publish(new UserRegisteredEvent($user));
return response()->json($user, 201);
}
}