dmt-software/command-bus-validator
最新稳定版本:2.0.0
Composer 安装命令:
composer require dmt-software/command-bus-validator
包简介
Tactician CommandBus middleware to validate commands using the Symfony Validator
README 文档
README
Install
composer require dmt-software/command-bus-validator
Usage
Default usage
Configure and adding this middleware to the commandBus:
<?php // src/CommandBus/builder.php use DMT\CommandBus\Validator\ValidationMiddleware; use League\Tactician\CommandBus; use League\Tactician\Handler\CommandHandlerMiddleware; /** @var CommandHandlerMiddleware $commandHandlerMiddleware */ $commandBus = new CommandBus( [ new ValidationMiddleware(), $commandHandlerMiddleware ] );
After the CommandBus is added, the commands it receives will be validated when the handle method is called:
<?php use DMT\CommandBus\Validator\ValidationException; use League\Tactician\CommandBus; try { /** @var object $command */ /** @var CommandBus $commandBus */ $result = $commandBus->handle($command); } catch (ValidationException $exception) { $violations = $exception->getViolations(); foreach ($violations as $violation) { echo $violation->getMessage(); // outputs: the violation message(s) } }
Using custom configured validator
The validator can also be plugged unto the middleware by providing it to the middleware constructor.
This example uses a FileLoader to determine the constraints for a command.
<?php // src/CommandBus/builder.php use DMT\CommandBus\Validator\ValidationMiddleware; use League\Tactician\CommandBus; use League\Tactician\Handler\CommandHandlerMiddleware; use Symfony\Component\Validator\ValidatorBuilder; $validator = (new ValidatorBuilder()) ->addYamlMapping('config/validation.yaml') ->getValidator(); /** @var CommandHandlerMiddleware $commandHandlerMiddleware */ $commandBus = new CommandBus( [ new ValidationMiddleware($validator), $commandHandlerMiddleware ] );
Further reading
统计信息
- 总下载量: 19.92k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 1
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-06-01