Hallo zusammen,

vorab, ich bin neu in der Typo3-Entwicklung. Könnte also sein, dass ich etwas 
durcheinander werfe.

Ich habe in einer eigenen Extension die fe_user und die fe_groups erweitert. 
Nun versuche ich alle User über das Repository zu holen und über diese in einem 
simplen Fluid-Template drüber zu iterieren:

[...]
<f:for each="{users}" as="user">
   <tr>
       <td> test</td>
   </tr>
</f:for>
[...]

Hierbei kam es bei mir zu Speicherüberschreitungen (mehr als 100MB belegt). Es 
handelt sich um ca 1800 User und es sind ca 60 weitere Attribute bei fe_user 
hinzugekommen (lediglich Strings, Booleans und Referenzen (lazy)). Auf 
Datenbankseite sind das lediglich ca 700kb.

Ich habe nun versucht das ganze über xhprof etwas zu untersuchen und mir ist dabei 
aufgefallen, dass der ForViewHelper zunächst für jeden FE_User 
"exec_SELECTgetRows" aufruft um den FE_user aus der Datenbank zu holen, was 
soweit auch ok ist. Zusätzlich werden aber auch pro fe_user alle ihm zugeordneten 
usergroups über ein separates query geholt , obwohl sie nicht benutzt werden. Das heißt 
pro fe_user werden nochmals 1-x Queries ausgeführt und wohl auch 1-x Model-Objekte 
angelegt, da sie wohl nicht wiederverwendet werden.

Daher meine Fragen:
Warum werden die Usergroups geholt? Liegt das daran, dass das Attribut 
usergroup beim feuser nicht als lazy markiert ist? Kann man das irgendwie 
umgehen?
Und wenn nicht, ist es möglich die Usergroup irgendwie wiederzuverwenden, 
sodass nicht weitere Instanzen davon angelegt werden?

Vielen Dank für jede Hilfe.

Mit freundlichen Grüßen

Christian Mohr

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an