Zum Inhalt springen

Extbase Debugging

Erstellt am 14. April 2014 · 2 Antworten · letzte Antwort am 15. April 2014

Tags: TYPO3 6.x, Frage

hannenz ·

Hallo,

ich bin dabei mich in die Welt von TYPO3 und Extension-Entwicklung mit Extbase einzuarbeiten. PHP und MVC sind mir nicht neu, aber irgendwie werde ich in der TYPO3-Welt noch nicht so richtig warm. Das liegt hauptsächlich daran, das ich nicht richtig voran komme und mein Hauptproblem ist, das ich dann gar nicht weiss, was los ist bzw. wo es gerade schief läuft und tappe oft schlicht einfach im Dunkeln. Und jetzt meine Frage, die mir sehr unter den Nägeln brennt:

Wie kann man denn sinnvoll in einer Extbase Extension Werte ausgeben lassen. In Fluid mit <f:debug /> ist mir bekannt und funktioniert auch, aber innerhalb der PHP Klassen habe ich immer das Problem, das -- wahrscheinlich durch einen Timeout oder Memory Overflow, zumindest lädt die Seite ewig -- nur leere Seiten ausgegeben werden, auch wenn ich nur ganz einfache Objekte ausgeben lassen will.

Versucht habe ich es bisher mit var_dump, print_r, TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump und \TYPO3\CMS\Core\Utility\DebugUtility::debug

Und/oder muss ich vielleicht noch weitere Einstellungen in der TYPO3-Konfiguration/Typoscript/sonstwo vornehmen, damit Debug-Ausgaben überhaupt angezeigt werden (sowas wie ein "debug=true" Switch oder so?)

Hilfreich wäre natürlich auch wenigstens ein Logger. Ich weiss ja, dass es das alles gibt, ich weiss nur nicht, welche "Hebelchen" man dazu wo betätigen muss.

Vielen Dank für ein bisschen dringend notwendige Erleuchtung 🙂

aemka ·

Egal, welche Einstellungen du wählst, Extbase Models und Repositories kannst du oft nicht mit debug() o. ä. ausgeben lassen, die OOP-Verschachtelungstiefe dieser Objekte zugroß ist, um sie zu deserialisieren. Ich debugge dann immer so, dass ich mir nur die uid oder das Objekt als Arrays ausgeben lasse, um zu sehen, was drin ist.
debug($someObject->getUid());
debug($someObject->toArray());