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: 2026-02-28 01:03:42 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);
}
}