src/Services/ValidatorService.php
public function check(Request $request, $rules = [])
    {
        $forReturn = [];

        foreach ($rules as $param => $rule) {
            $forReturn[$param] = $request->getParam($param);

            if (is_array($rule)) {
                list($rule, $message) = $rule;
            }

            if (is_callable($rule)) {
                /**
                 * @todo check this possibility
                 */
                $validateAr[$param] = call_user_func($rule)
                                            ->setName('"' . ucfirst($param) . '"');
            } else {
                $ruleAr = explode(',', $rule);
                $validateAr[$param] = $this->setRules($ruleAr)
                                            ->setName('"' . ucfirst($param) . '"');
            }

            if (isset($message)) {
                $validateAr[$param] = ['rules' => $validateAr[$param], 'message' => $message];
                unset($message);
            }
            
        }

        if (is_array($validateAr)) {
            $this->engine->validate($request, $validateAr);

            if ($this->failed()) {
                $this->flash->addMessage('form.old', $request->getParsedBody()); // or getParams()?
                $this->flash->addMessage('form.errors', $this->getErrors());
                return false;
            }
        }

        // return true;
        
        /**
         * Testing 
         * Return all request body params
         */
        return $forReturn;
    }
public function check(Request $request, $rules = [])
    {
        $forReturn = [];

        foreach ($rules as $param => $rule) {
            $forReturn[$param] = $request->getParam($param);

            if (is_array($rule)) {
                list($rule, $message) = $rule;
            }

            if (is_callable($rule)) {
                /**
                 * @todo check this possibility
                 */
                $validateAr[$param] = call_user_func($rule)
                                            ->setName('"' . ucfirst($param) . '"');
            } else {
                $ruleAr = explode(',', $rule);
                $validateAr[$param] = $this->setRules($ruleAr)
                                            ->setName('"' . ucfirst($param) . '"');
            }

            if (isset($message)) {
                $validateAr[$param] = ['rules' => $validateAr[$param], 'message' => $message];
                unset($message);
            }
            
        }

        if (is_array($validateAr)) {
            $this->engine->validate($request, $validateAr);

            if ($this->failed()) {
                $this->flash->addMessage('form.old', $request->getParsedBody()); // or getParams()?
                $this->flash->addMessage('form.errors', $this->getErrors());
                return false;
            }
        }

        // return true;
        
        /**
         * Testing 
         * Return all request body params
         */
        return $forReturn;
    }
Validator wrapper
@param  RequestInterface $request
@param  array            $rules
@return mixed