[!!!][TASK] Refactor property access in compiled fluid templates
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Documentation / Changelog / master / Breaking-66758-FluidRefactorPropertyAccess.rst
1 =======================================================================
2 Breaking: #66758 - Refactor property access in compiled fluid templates
3 =======================================================================
4
5 Description
6 ===========
7
8 Refactors property access in Fluid templates to use a closure that calculates the getters and/or array
9 access keys to resolve the property path and self replaces this after the first rendering in the compiled
10 template. This improves property access dramatically after the first request.
11
12 Impact
13 ======
14
15 This breaks if you access different types of data with the same path. For example if you have an array in
16 which arrays and objects are nested on the same level.
17
18 Example::
19
20   Array (available in Fluid as {data})
21     Object (getFoo())
22     Array['foo']
23
24   <f:for each="data" as="element">
25         {element.foo}
26   </f:for>
27
28 This code would break with the change as the closure would determine that accessing {element.foo} needs to
29 use the getter method `getFoo()` so accessing the second element which is an array would break as fluid would
30 try to access `foo` as well with `getFoo()`.