wol-soft/php-json-schema-model-generator

View on GitHub
src/Templates/Validator/ArrayContains.phptpl

Summary

Maintainability
Test Coverage
is_array($value) && (function (&$items) {
    if (empty($items)) {
        return true;
    }

    {% if generatorConfiguration.collectErrors() %}
        $originalErrorRegistry = $this->_errorRegistry;
    {% endif %}

    foreach ($items as &$value) {
        try {
            {% if generatorConfiguration.collectErrors() %}
                $this->_errorRegistry = new {{ viewHelper.getSimpleClassName(generatorConfiguration.getErrorRegistryClass()) }}();
            {% endif %}

            {{ viewHelper.resolvePropertyDecorator(property) }}

            {% foreach property.getOrderedValidators() as validator %}
                {{ viewHelper.renderValidator(validator, schema) }}
            {% endforeach %}

            {% if generatorConfiguration.collectErrors() %}
                if ($this->_errorRegistry->getErrors()) {
                    continue;
                }

                $this->_errorRegistry = $originalErrorRegistry;
            {% endif %}

            // one matched item is enough to pass the contains check
            return false;
        } catch (\Exception $e) {
            continue;
        }
    }

    {% if generatorConfiguration.collectErrors() %}
        $this->_errorRegistry = $originalErrorRegistry;
    {% endif %}

    return true;
})($value)