


| Directory | Changes | Lines of Code | Lines per Change |
|---|---|---|---|
| Totals | 145 (100.0%) | 4585 (100.0%) | 31.6 |
| Classes/MVC/Controller/ | 30 (20.7%) | 405 (8.8%) | 13.5 |
| Tests/Unit/Security/Channel/ | 1 (0.7%) | 402 (8.8%) | 402.0 |
| Tests/MVC/Controller/ | 15 (10.3%) | 337 (7.4%) | 22.4 |
| Classes/Property/Converter/ | 4 (2.8%) | 321 (7.0%) | 80.2 |
| Classes/Reflection/ | 8 (5.5%) | 270 (5.9%) | 33.7 |
| Tests/Property/Converter/ | 3 (2.1%) | 214 (4.7%) | 71.3 |
| Tests/Reflection/ | 4 (2.8%) | 213 (4.6%) | 53.2 |
| Classes/Property/ | 9 (6.2%) | 202 (4.4%) | 22.4 |
| Classes/MVC/View/ | 5 (3.4%) | 199 (4.3%) | 39.8 |
| Classes/Security/Channel/ | 1 (0.7%) | 179 (3.9%) | 179.0 |
| Classes/Property/Editor/ | 4 (2.8%) | 170 (3.7%) | 42.5 |
| Tests/Property/ | 5 (3.4%) | 147 (3.2%) | 29.4 |
| Tests/Validation/ | 2 (1.4%) | 132 (2.9%) | 66.0 |
| Classes/Security/Exception/ | 3 (2.1%) | 102 (2.2%) | 34.0 |
| Tests/Unit/Security/Cryptography/ | 1 (0.7%) | 96 (2.1%) | 96.0 |
| Tests/Unit/MVC/View/ | 2 (1.4%) | 95 (2.1%) | 47.5 |
| Tests/Property/Editor/ | 2 (1.4%) | 90 (2.0%) | 45.0 |
| Classes/Validation/ | 2 (1.4%) | 88 (1.9%) | 44.0 |
| Tests/Unit/MVC/Controller/ | 4 (2.8%) | 83 (1.8%) | 20.7 |
| Tests/Reflection/Fixture/ | 3 (2.1%) | 78 (1.7%) | 26.0 |
| Tests/Validation/Validator/ | 1 (0.7%) | 71 (1.5%) | 71.0 |
| Tests/Unit/Reflection/ | 4 (2.8%) | 69 (1.5%) | 17.2 |
| Classes/Security/Cryptography/ | 2 (1.4%) | 66 (1.4%) | 33.0 |
| Classes/Persistence/ | 3 (2.1%) | 58 (1.3%) | 19.3 |
| Tests/Property/Editor/Fixture/ | 1 (0.7%) | 50 (1.1%) | 50.0 |
| Tests/Property/Converter/Fixture/ | 2 (1.4%) | 50 (1.1%) | 25.0 |
| Classes/Validation/Validator/ | 1 (0.7%) | 49 (1.1%) | 49.0 |
| Tests/Unit/Object/Fixture/ | 1 (0.7%) | 43 (0.9%) | 43.0 |
| Tests/Persistence/ | 1 (0.7%) | 38 (0.8%) | 38.0 |
| Classes/MVC/Web/Routing/ | 1 (0.7%) | 37 (0.8%) | 37.0 |
| Classes/Validation/Exception/ | 1 (0.7%) | 35 (0.8%) | 35.0 |
| Classes/MVC/Exception/ | 1 (0.7%) | 35 (0.8%) | 35.0 |
| Documentation/Manual/DocBook/en/ | 1 (0.7%) | 32 (0.7%) | 32.0 |
| Classes/Security/Aspect/ | 3 (2.1%) | 26 (0.6%) | 8.6 |
| Classes/MVC/Web/ | 1 (0.7%) | 26 (0.6%) | 26.0 |
| Classes/Object/Container/ | 3 (2.1%) | 19 (0.4%) | 6.3 |
| Tests/Unit/Object/Container/ | 2 (1.4%) | 17 (0.4%) | 8.5 |
| Tests/Unit/MVC/Web/ | 2 (1.4%) | 17 (0.4%) | 8.5 |
| Tests/Unit/Security/Aspect/ | 2 (1.4%) | 8 (0.2%) | 4.0 |
| Classes/ | 1 (0.7%) | 7 (0.2%) | 7.0 |
| Tests/Fixtures/ | 1 (0.7%) | 5 (0.1%) | 5.0 |
| Tests/Unit/MVC/Web/Routing/ | 2 (1.4%) | 4 (0.1%) | 2.0 |

[+BUGFIX] FLOW3: Re-added AbstractView, as we need it in JsonView
72 lines of code changed in 1 file:
[+BUGFIX] FLOW3: Followup patch to r4653.
223 lines of code changed in 7 files:
[!!!][+FEATURE] FLOW3 (Object): The lifecycle initialization method (typically initializeObject()) is now also called after recreating an object (f.e. when it is recreated from persistent storage). Additionally, initializeObject() now gets a parameter to determine if creation or recreation took place. Resolves #8258.
111 lines of code changed in 7 files:
[+BUGFIX] FLOW3 (Reflection): Introduced a new parameter for ObjectAccess::getPropertyPath so the caller of the method can decide if closures should be evaluated or not. Related to #7588 and r4256.
22 lines of code changed in 2 files:
[!!!][+FEATURE] FLOW3 (Reflection): If an object on the path given to ObjectAccess::getPropertyPath() is a Closure, it is executed and the result is processed further. This means it is currently NOT possible to the closure itself, as it is directly executed. Resolves #7588.
[+BUGFIX] FLOW3 (Reflection): ObjectAccess::getPropertyPath now also works with classes implementing ArrayAccess.
48 lines of code changed in 2 files:
[+TASK] FLOW3 (Reflection): ObjectAccess->getProperty now supports not only ArrayObjects, but also simple arrays.
17 lines of code changed in 3 files:
[+BUGFIX] FLOW3 (Security): Fixed two issues with Request Hashing. Changed hash implementation from normal SHA1 to a real HMAC. Thanks to Markus Krause for pointing this out. Relates to #4960.
7 lines of code changed in 3 files:
[BUGFIX] FLOW3 (MVC): Bugfix to automatic request hashing in context with CLI. Relates to #4960.
1 lines of code changed in 1 file:
[BUGFIX] FLOW3 (Security): Bugfix to automatic request hashing in context with CLI. Relates to #4960.
3 lines of code changed in 1 file:
[!!!][+FEATURE] FLOW3 (Security): Added a HMAC generator and checker to prevent unauthorized access on objects where no edit fields were generated for. It is mandatory in case objects are modified on the server side. See the issue for a more in-depth explanation. This feature does NOT break backwards-compatibility as long as you use only Fluid for form-generation. In case of custom fields, it WILL break backwards compatibility, and you might need the @dontverifyrequesthash annotation. Resolves #4960.
[+FEATURE] Fluid (ViewHelpers): Added a request hash to all form fields. It is mandatory in case objects are modified on the server side. Relates to #4960.
1135 lines of code changed in 23 files:
[+FEATURE] FLOW3 (Persistence): Calls to Repository::update() will now also update the child objects if needed. This is needed if an object with sub-objects is submitted via a form. Relates to #4218.
85 lines of code changed in 2 files:
[+TASK] FLOW3 (Reflection): Added a new helper method in ObjectAccess which can traverse object graphs (with the "."-Syntax)
[+TASK] Fluid (ViewHelpers): Refactored the generation of the hidden identity field.
[+FEATURE] Fluid (ViewHelpers): properties of nested objects are now correctly outputted, and the identity fields for the nested objects are generated as well. Related to #4218.
44 lines of code changed in 3 files:
[-API] FLOW3 (MVC): Removed enableValidation() and disableValidation() on the Controller Argument. They are not needed anymore.
[!!!][+BUGFIX] FLOW3 (MVC): Now, in case people do not specify an @param annotation, they will get an exception instead of Text being used.
[+BUGFIX] FLOW3 (MVC): Cleaned up validator registration in ActionController. Now, @dontvalidate annotations only disable the model-based validators.
[+BUGFIX] FLOW3 (Validation): Cleaned up ValidatorResolver. Now, Validators which check the data type from the @param annotation are also added to the validator chain.
[!!!][+BUGFIX] FLOW3 (Validation): @param string is now validated as string, and not anymore as Text. This fixes numerous bug reports in Fluid.
464 lines of code changed in 11 files:
[!!!][~FEATURE] FLOW3 (MVC): Improved the way flash messages are handled. Now there is a separate "FlashMessages" object which encapsulates handling the flash messages. This removes $this->pushFlashMessage and $this->popFlashMessages inside the Controller and {flashMessages} inside Fluid Template. PLEASE UPGRADE by replacing "$this->pushFlashMessage(" with "$this->flashMessages->add(" inside your Controllers, and use <f:renderFlashMessages /> instead of the custom for loop inside your templates. Note: You can set a custom CSS class for outputting flash messages by using <f:renderFlashMessages class="..." /> inside your templates. Resolves #4638.
218 lines of code changed in 6 files:
[+FEATURE] FLOW3 (MVC): Now, non-domain-objects can be mapped inside an argument as well. Additionally, improved the exceptions in these cases. Resolves #4631
70 lines of code changed in 2 files:
FLOW3:
* (MVC) ActionController: Removed the injection of the ValidatorResolver, because it is already injected in the AbstractController
0 lines of code changed in 1 file:
FLOW3:
* (MVC) reverted my change in ActionController because I was wrong. Sorry!
0 lines of code changed in 1 file:
FLOW3:
* (MVC) Added $URIBuilder protected variable to ActionController. The declaration was previously missing.
5 lines of code changed in 1 file:
FLOW3:
* Fixed redirects in AbstractController
1 lines of code changed in 1 file:
FLOW3:
* Added default arguments implementation in MVC
84 lines of code changed in 6 files:
(14 more)