Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactored Nette\Forms\FormContainer::getValues and ::setValues to use recursion instead of ugly recursive iterators. This code is much more straightforward in what it should do plus it allows extension (see below). Plus, all tests pass on it (so it shouldn't break anything)
See discussion on http://forum.nette.org/cs/6964-prilisna-slozitost-formcontainer-setvalues-getvalues
It also allows possible extension on your specific named containers: you can implement a class extending FormContainer and by overriding setValue + getValue methods, you can do absolutely whatever you want (like creating dynamic number of elements etc.) Serialization and deserialization is completely in your hands. This also goes very well with https://github.com/Foowie/DynamicFormContainer addon which when impelemting setValue + getValue can work much better than it's working now (pull request for that addon will be provided soon)