lithium\util\Validator::_checkFormats PHP Method

_checkFormats() protected static method

Perform validation checks against a value using an array of all possible formats for a rule, and an array specifying which formats within the rule to use.
protected static _checkFormats ( array $rules ) : Closure
$rules array All available rules.
return Closure Function returning boolean `true` if validation succeeded, `false` otherwise.
    protected static function _checkFormats($rules)
    {
        return function ($self, $params, $chain) use($rules) {
            $value = $params['value'];
            $format = $params['format'];
            $options = $params['options'];
            $defaults = array('all' => true);
            $options += $defaults;
            $formats = (array) $format;
            $options['all'] = $format === 'any';
            foreach ($rules as $index => $check) {
                if (!$options['all'] && !(in_array($index, $formats) || isset($formats[$index]))) {
                    continue;
                }
                $regexPassed = is_string($check) && preg_match($check, $value);
                $closurePassed = is_object($check) && $check($value, $format, $options);
                if ($regexPassed || $closurePassed) {
                    return true;
                }
            }
            return false;
        };
    }