nuvolapl / cqrs
There is no license information available for the latest version (1.0.0) of this package.
CQRS
1.0.0
2019-07-05 09:40 UTC
Requires
- php: ^7.3
Requires (Dev)
- phpunit/phpunit: ^8.2
This package is auto-updated.
Last update: 2024-05-27 21:23:43 UTC
README
CQRS abstraction for your application
Installation
composer req nuvolapl/cqrs
Usage
class AccountController { /** * @var SystemInterface */ private $system; public function __construct(SystemInterface $system) { $this->system = $system; } public function post(array $payload): void { $command = new CreateAccountCommand( $payload['name'], $payload['confirmed'], new \DateTimeImmutable() ); $this->system->command($command); } public function get(int $id): Account { return $this->system->query( new GetAccountByIdQuery($id) ); } /** * {@inheritdoc} * * @return Account[] */ public function getCollection(array $query): array { $collection = $this->system->query( new GetAccountCollectionQuery( $query['limit'], $query['offset'] ) ); return \iterator_to_array($collection); } }