Swagger\Annotations\AbstractAnnotation::_validate PHP Méthode

_validate() private static méthode

Recursively validate all annotation properties.
private static _validate ( array | object $fields, array $path, $skip ) : boolean
$fields array | object
$path array The path of annotations above this annotation in the tree.
Résultat boolean
    private static function _validate($fields, $path, $skip)
    {
        $parents = $path;
        array_pop($parents);
        $valid = true;
        $blacklist = [];
        if (is_object($fields)) {
            if (in_array($fields, $skip, true)) {
                return true;
            }
            $skip[] = $fields;
            $blacklist = property_exists($fields, '_blacklist') ? $fields::$_blacklist : [];
        }
        foreach ($fields as $field => $value) {
            if ($value === null || is_scalar($value) || in_array($field, $blacklist)) {
                continue;
            }
            if (is_object($value)) {
                if (method_exists($value, 'validate')) {
                    if (!$value->validate($path, $skip)) {
                        $valid = false;
                    }
                } elseif (!self::_validate($value, $parents, $skip)) {
                    $valid = false;
                }
            } elseif (is_array($value) && !self::_validate($value, $parents, $skip)) {
                $valid = false;
            }
        }
        return $valid;
    }