Bluz\Validator\ValidatorBuilder::validateItem PHP Метод

validateItem() публичный Метод

Validate chain of rules for single item
public validateItem ( string $key, array | object $input ) : boolean
$key string
$input array | object
Результат boolean
    public function validateItem($key, $input) : bool
    {
        // w/out any rules element is valid
        if (!isset($this->validators[$key])) {
            return true;
        }
        $validators = $this->validators[$key];
        // check be validators
        // extract input from ...
        if (is_array($input) && isset($input[$key])) {
            // array
            $value = $input[$key];
        } elseif (is_object($input) && isset($input->{$key})) {
            // object
            $value = $input->{$key};
        } else {
            // ... oh, not exists key
            // check chains for required
            $required = false;
            foreach ($validators as $validator) {
                /* @var Validator $validator */
                if ($validator->isRequired()) {
                    $required = true;
                    break;
                }
            }
            if ($required) {
                $value = '';
            } else {
                return true;
            }
        }
        // run validators chain
        foreach ($validators as $validator) {
            /* @var Validator $validator */
            if (!$validator->getName()) {
                // setup field name as property name
                $validator->setName(ucfirst($key));
            }
            if (!$validator->validate($value)) {
                if (!isset($this->errors[$key])) {
                    $this->errors[$key] = [];
                }
                $this->errors[$key][] = $validator->getError();
                return false;
            }
        }
        return true;
    }