PHP einfach debuggen? Wie Funktionsaufrufe über mehrere Dateien überblicken

maccoX

maccoX

Aktives Mitglied
Thread Starter
Dabei seit
15.02.2005
Beiträge
16.026
Reaktionspunkte
6.046
Hallo,

ich bin gerade dabei ein Magento Projekt zu debuggen und wühle mich durch die phtml und php Dateien... nicht schön...
Ich wühle mich gerade von der Fontendpreisanzeige zurück durch alle Dateien bis zu der Stelle wo die Bündel min/max Preise berechnet werden.

Mein größtes Problem dabei ist, es kommen immer wieder Funktionsaufrufe die irgendwo in einer anderen Datei definiert sind und scheinbar Datenbankabfragen wie z.B.:
$this->getPriceHtml($_product)
$this->_productLimitationFilters
$this->getTierPrices($_product);
$this->_getMinimalBundleOptionsPrice($product, $includeTax, $takeTierPrice);
$this->getTable('catalog/product_index_price')
$select->joinLeft($tableName, $joinCond, $colls);
$select->setPart(Zend_Db_Select::FROM, $fromPart);

Wie kann ich denn da immer schnell die passenden Dateien finden wo es weiter geht?

Auch bekomme ich in tiefer gelegenen PHP Dateien und Funktionen keine Reaktion mehr auf:
var_dump( $variable );
die();

Ist mein erstes Magento Projekt und das ich derart viel mit extrem verschachtelten PHP zu tun habe. Der Shop liegt auf einem Server wo ich nur per FTP Zugriff habe.

Habt ihr da einen Tipp für mich?
 
Zuletzt bearbeitet:
Dachte vielleicht kennt sich hier ja Jemand mit Magento aus, bzw. kann mir allgemein mit PHP entsprechend etwas helfen.
 
Um sinnvoll arbeiten zu können, benötigst du eine Kopie des Shops bei dir in der Entwicklungsumgebung und eine sinnvolle PHP IDE.
Dann kannst du sowohl zur Laufzeit den Stack im Debugger sehen, als auch bei einer "statischen" Codeanalyse mit den Hilfsmitteln der IDE die Aufrufe nachverfolgen.
Du kannst auch versuchen, ob du nicht ein Analyswerkzeug drüberlaufen lassen kannst, das die die Abhängigkeiten visualisiert.
Zend Studio oder Eclipse PDT könnten dir eventuell weiterhelfen. Ich entwickle nur Kleinigkeiten in PHP (mir genügt das Netbeans PHP Plugin) und kenne darum die Werkzeuge nicht genauer. Remote und per ftp an den live Quellen rumzudoktorn -> würde ich bleiben lassen...
 
  • Gefällt mir
Reaktionen: wegus
Ist nicht böse gemeint: Mit dem Wissenstand und den Tools laß bitte lieber die Finger davon!

Was brauchst Du? Mehr wissen über Objekte, wie sie interagieren und eine IDE wie PHPStorm die Dir die Relationen aufzeigt und vermutlich eine gute Portion wissen über Magento. Alte Versionen von Magento basieren noch auf dem ZendFramework. Neuere Versionen haben eine eigene Version/Entwicklung aus dem ZendFramework erstellt. Ohne wissen wie da was interagiert und ohne die Tools bist Du aufgeschmissen fürchte ich. Deswegen der Rat eingangs.
 
  • Gefällt mir
Reaktionen: ruerueka
Irgendwann muss man ja mal anfangen - ich würde einen neuen Entwickler durchaus auf einer Kopie* des Kundensystem spielen lassen, aber es würde halt nie live gehen. Besser ist natürlich, wenn man das am Anfang immer "begleitet" machen kann - dann kann man die Einarbeitung/Lernkurve auch sinnvoll steuern. Bei uns wird niemand so ins kalte Wasser geschmissen...

* Natürlich immer nur mit anonymisierten personenbezogenen Daten.
 
  • Gefällt mir
Reaktionen: wegus
Der Shop liegt auf einem Testserver (Änderungen werden dann aufs Live System übernommen) und ich will mich da jetzt eben einarbeiten. Hab auch leider Niemanden der mir da etwas zeigen könnte. Muss also das Beste draus machen.

Werde mir mal PHP IDE Programme ansehen, vielleicht ist das ja hilfreich.
Muss dann wohl die ganzen Shop Dateien lokal kopieren damit das Programm die zugehörigen Funktionen in den Dateien suchen kann (über FTP ist das ja wohl kaum möglich).

Hoffe nur da kommt man als Einsteiger leichter rein wie bei TYPO3, das war nämlich nur mit Kollegenhilfe sinnvoll möglich.
 
Der Shop liegt auf einem Testserver (Änderungen werden dann aufs Live System übernommen) und ich will mich da jetzt eben einarbeiten. Hab auch leider Niemanden der mir da etwas zeigen könnte. Muss also das Beste draus machen.

Werde mir mal PHP IDE Programme ansehen, vielleicht ist das ja hilfreich.
Muss dann wohl die ganzen Shop Dateien lokal kopieren damit das Programm die zugehörigen Funktionen in den Dateien suchen kann (über FTP ist das ja wohl kaum möglich).

Hoffe nur da kommt man als Einsteiger leichter rein wie bei TYPO3, das war nämlich nur mit Kollegenhilfe sinnvoll möglich.
Der Debug-Modus sollte dir ja, wenn aktiviert, die Fehler im Frontend dann anzeigen.
Und da steht dann in welcher Datei und in welcher Zeile etc.

Die Kopie des Systems auf HD und dann die entsprechende Datei im Editor aufmachen und nachschauen.
 
Typo3 mit Extbase kommt Zend Framework vom Umfang recht nahe! Aber wenn Du eine Teststellung und Zeit hast dann probier Dein Glück doch!

Allerdings ohne IDE wie Netbeans(kostenlos) oder PHPStorm(30 Tage Testversion) wirst Du in der Tat zuviel suchen müssen. Debugger sind gut und schön helfen einem aber nicht dabei die Übersicht zu bekommen.
 
  • Gefällt mir
Reaktionen: ruerueka
Für das Debuggen von php bietet sich Xdebug an. Da bekommst Du den kompletten Call-Stack sowie die Werte aller Variablen übersichtlich ausgegeben. Und alles ist super reproduzierbar. Mit VisualStudio Code geht das von Haus aus. Für Chrome gibt es zum komfortablen Steuern die Erweiterung "Xdebug helper".
 
  • Gefällt mir
Reaktionen: wegus
Zurück
Oben Unten