envor / libstream
这是我创建的包libstream
v1.0.7
2024-08-01 17:46 UTC
Requires
- php: ^8.2
- hirethunk/verbs: ^0.5.1
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-deleted-models: ^1.0
- spatie/laravel-event-sourcing: ^7.7
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
README
安装
您可以通过composer安装此包
composer require envor/libstream
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="libstream-migrations"
php artisan migrate
用法
use Envor\Libstream\Command as LibCommand; use App\Aggregates\Main; #[HandledBy(Main::class)] class Command extends LibCommand { public static function createBusiness( string $uuid, array $businessAttributes, array $metaData = [] ): self { return new self(new BusinessCreated( aggregateUuid: $uuid, businessAttributes: $businessAttributes, metaData: $metaData )); } }
use Envor\Libstream\Dispatcher as LibDispatcher class Dispatcher extends LibDispatcher { public function createBusiness( string $uuid, array $businessAttributes, array $metaData = [] ): self { $this->add(new Command(new BusinessCreated( aggregateUuid: $uuid, businessAttributes: $businessAttributes, metaData: $metaData ))); return $this; } }
$uuid = (string) str()->ulid(); $dispatcher = Dispatcher::new()->createBusiness( uuid: $uuid, businessAttributes: $validatedData, metaData: [ 'auth' => [ 'email' => Auth::user()->email, ], ] )->dispatch();
测试
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查看我们的安全策略以了解如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。