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

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

Summary

Maintainability
Test Coverage
is_array($value) && (function (&$items) use (&$invalidItems{{ suffix }}, $modelData) {
    {% if generatorConfiguration.collectErrors() %}
        $originalErrorRegistry = $this->_errorRegistry;
    {% endif %}

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

        try {
            {{ viewHelper.resolvePropertyDecorator(nestedProperty) }}

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

            {% if generatorConfiguration.collectErrors() %}
                if ($this->_errorRegistry->getErrors()) {
                    $invalidItems{{ suffix }}[$index] = $this->_errorRegistry->getErrors();
                }
            {% endif %}
        } catch (\Exception $e) {
            // collect all errors concerning invalid items
            isset($invalidItems{{ suffix }}[$index])
                ? $invalidItems{{ suffix }}[$index][] = $e
                : $invalidItems{{ suffix }}[$index] = [$e];
        }
    }

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

    return !empty($invalidItems{{ suffix }});
})($value)