Example #1
0
 /**
  * 用于客户端验证的中间件。
  *
  * @param Service        $api       被访问的 API。
  * @param Validator|null $validator 验证器。
  *
  * @return callable
  */
 public static function validation(Service $api, Validator $validator = null)
 {
     $validator = $validator ?: new \Validator();
     return function (callable $handler) use($api, $validator) {
         return function (CommandInterface $command, RequestInterface $request = null) use($api, $validator, $handler) {
             $operation = $api->getOperation($command->getName());
             $validator->validate($command->getName(), $operation->getInput(), $command->toArray());
             return $handler($command, $request);
         };
     };
 }