/** * __invoke * * @param Request $request * @param Response $response * @param callable|null $out * * @return mixed */ public function __invoke(Request $request, Response $response, callable $out = null) { $filterConfig = $this->getOption($request, 'config', []); $inputFilter = new InputFilter(); $factory = $inputFilter->getFactory(); foreach ($filterConfig as $field => $config) { $inputFilter->add($factory->createInput($config)); } $dataModel = $request->getParsedBody(); $inputFilter->setData($dataModel); if ($inputFilter->isValid()) { return $out($request, $response); } $messages = new ZfInputFilterMessageResponseModels($inputFilter, $this->getOption($request, 'primaryMessage', 'An Error Occurred'), $this->getOption($request, 'messageParams', [])); return $this->getResponseWithDataBody($response, $messages); }