[TYPO3-german] Extbase - Aufruf einer Controller-Methode in itemsProcFunc funktioniert nicht

Cedric Ziel cedric at cedric-ziel.com
Wed Dec 4 14:07:22 CET 2013


  Wenn du Extensions entwickelst, würde ich dir empfehlen, einen Blick auf
das Caching Framework zu werfen.
[http://docs.typo3.org/TYPO3/CoreApiReference/CachingFramework/Index.html]

Damit Dinge wie Reflection überhaupt funktionieren, muss dein Code zuerst
analysiert werden. Das Ergebnis dieser Analyse und damit in Verbindung
stehend die Information über erwartete Funktionsparameter werden gecached.
Daran ändert auch no_cache nichts. Dies sagt lediglich, das Die Ergebnisse
von Plugin Actions nicht gecached werden.
[extCache] = 0 verhindert nur, das die ext_* Skripte einer Extension nicht
gecached werden.
Beides also Dinge, welche primär nichts damit zu tun haben, das
tatsächliche Code-Veränderungen nicht angenommen werden.

Eine Notiz zwischendurch: Eine Action eines ActionControllers muss _immer_
ein Action Suffix haben das ist mir vohin bei einem deiner Schnippsel
aufgefallen. Auch möchtest Du dort an ein Fluid Template assignen, was so
nicht funktioniert, da es keinen initialisierten View gibt. Dinge, wie die,
die Du vorhast, sollten sich nicht in Controllern befinden, sondern in
Utility Classen, die auch eigenständig funktionieren, ohne das es den
Extbase Kontext gibt.
Ich kann dir aber außer klugen Ratschlägen auch weiterhin nicht bei
deinem Problem helfen.

Ich selbst bin zurückgewichen und habe mit den bekannten Konstrukten aus
TCEMain gearbeitet. Wenn Du mit Extbase arbeiten willst, musst Du, ähnlich
wie es in eID Skripten oder typeNum passiert, einen eigenen Extbase Kontext
bauen.

Weiterhin möchte ich dir die Extension "uncache" ans Herz legen, welche
unabhängig von Systemeinstellungen jeden Cache-Schnippsel ins NullBackend
jagt und dir Schmerzen in dieser Region erspart. Sie ist im TER verfügbar,
oder auch auf GitHub. Die Funktionalität ist selbsterklärend, und ich
würde dir empfehlen, den Quellcode einmal durchzusehen, um zu verstehen,
wie es funktioniert. [https://github.com/FluidTYPO3/uncache]

Ein weiterer Hinweis führt dich in typo3temp/Cache/Code. Solange dort
Dateien angelegt und nicht bei jedem Request neu geschrieben werden, hast
Du einen aktiven Cache.

Bei weiteren Fragen würde ich an deiner Stelle uA die channels #typo3 und
#fedext (für Probleme mit uncache) auf Freenode aufsuchen und dort einmal
nachhaken.

Reflection selbst ist im übrigen ein Kernkonstrukt von PHP. - Know your
language. Auch hier lohnt sich ein Blick in die Dokumentation.

Danke an Georg, das habe ich ebenfalls übersehen.

Viele Grüße,
Cedric

Zitat von "JCL - Johannes C. Laxander" <jc at laxander.com>:

>> Ich wette, dein Reflection Cache weiss nichts davon ;)
>
> Was bitte ist ein Reflection Cache??? Und wo finde ich den? Noch nie was
> davon gehört!
> Ich hab jetzt Button im Backend alle Caches gelöscht. Das Ergebnis ist
> das gleiche!
>
>> Zitat von "JCL - Johannes C. Laxander" <jc at laxander.com>:
>>
>> das könnte evtl. nach einem Cache-Leeren rufen :-)
>>
>> Eddy
>>
>> Ich arbeite in einer Entwickungsumgebung, da wird keine Extension
>> gecached: [EXT][extCache] = 0.
>> Und auch der Seiten Cache ist per TypoScript deaktiviert:
>> config.no_cache = 1.
>>
>> Johannes.
>
> _______________________________________________
> TYPO3-german mailing list
>
TYPO3-german at lists.typo3.orghttp://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list