Debugging in Magento Nutzen Werkzeuge Demo 17.5.2011, Aachen code4business Software GmbH Dennewartstr. 25-27 52068 Aachen Germany
code4business entwickelt Magento-Module für Agenturen code4business... kommt aus der klassischen Softwareentwicklung mit Java und C# setzt Extreme Programming als Entwicklungsmodell ein hat einen Fokus auf qualitativ hochwertige Entwicklungsprozesse ist seit einem Jahr in der Magento-Modulentwicklung unterwegs arbeitet wie ein Freelancer für Agenturen und Designer (selten für Endkunden)
Ein echter Debugger: Inspizieren statt Hoffen Was verstehe ich unter einem Debugger? - Single-Step-Debugger innerhalb einer integrierten Entwicklungsumgebung - Kein var_dump oder echo - Kein Logging oder ähnliches Welche Vorteile bringt mir ein Debugger? - Ablauf des Programms Schritt für Schritt beobachten - Aufbau von Objekten inspizieren - Den Call-Stack untersuchen, grade wenn die Aufrufreihenfolge nicht offensichtlich ist - Annahmen über den Ablauf vermeiden, da der komplette Ablauf untersucht wird
Einfache Anleitungen für das Setup eines Debuggers fehlen Eine Suche nach Magento Debugger bei Magento Commerce: - Hi -I use NuSphere PHP Ed and it works great -I know it s not free but it does work - I have xdebug set up on my local server and use NetBeans 6.7 M2 PHP edition to debug all my code. Works perfectly. Step debugging, variable inspection, watches, the works. - For debugging with xdebug what is important is a way to start the debugging session and a debugger client which will listen a client. - I definitely recommend Netbeans with Xdebug => Was schließe ich daraus? Sollte man Xdebug nutzen?
Der Zend-Debugger läuft gut am besten unter reinem Unix/Linux XDebug Zend-Debugger Kombinationmit Eclipse/ NetBeans unter Windows Kombindationmit Eclipse/ NetBeans unter Linux WAMP / Windows Probleme mit Eclipse und NetBeans Funktioniert nur bis PHP 5.2 Zendläuft gut aber nur bis 5.2 Nicht getestet,da nicht sinnvoll Zend CE/ Windows Apache / Linux Nicht getestet,da nicht sinnvoll Funktioniert Zend läuft gut, Differenz zum endgültigen Server hoch Nicht getestet,da nicht sinnvoll Probleme mit Eclipse und NetBeans Funktioniert Zend läuft langsam (> 5 Sek), nah am endgültigen Server Zend läuft gut, nah am endgültigen Server
Zum nachlesen: Die getesteten, funktionierenden Konfigurationen Getestete, funktionierende Konfigurationen: - Windows: Eclipse PDT 2.2.0 (http://www.eclipse.org/pdt/) und Zend Server Community Edition 5.1.0 unter Windows 7 oder Windows Server 2008 - Windows/Unix: Eclipse PDT 2.2.0 (http://www.eclipse.org/pdt/) unter Windows 7, Apache Version 5.3.3-1ubuntu9.3 unter Ubunto Server 10.10 (http://www.ubuntu.com/business/get-ubuntu/download) mit Studio Web Debugger 20100729 (64 bit), daraus ZendDebugger.so für PHP 5.3 in das Extensions-Verzeichnis (http://www.zend.com/en/products/studio/downloads) - Unix: Eclipse PDT 2.2.0 (http://www.eclipse.org/pdt/) und Apache Version 5.3.3-1ubuntu9.3 unter Ubunto Server 10.10 (http://www.ubuntu.com/business/getubuntu/download) mit Studio Web Debugger 20100729 (64 bit), daraus ZendDebugger.so für PHP 5.3 in das Extensions-Verzeichnis (http://www.zend.com/en/products/studio/downloads)
Zum nachlesen: Sinnvolle, aber nicht funktionierende Kombinationen Sinnvolle, aber nicht funktionierende Kombinationen: - Windows: Eclipse PDT und WampServer mit PHP 5.3 und Zend Debugger, denn der Zend Debugger lässt sich unter PHP 5.3 keinen Thread-Safe-Modus zu, der Wamp- Server ist aber Thread-Safe kompiliert - Windows: Eclipse PDT und WampServer mit PHP 5.3 uns XDebug, denn XDebug scheint mit dem Zend Framework nicht kompatibel zu sein; in der Praxis bricht der Debugger regelmäßig zusammen Zitat: I am sorry to inform you that Zend won't be developing anymore thread safe versions for any of its product. [ ] (http://forums.zend.com/viewtopic.php?f=59&t=1918) Anleitungen für die Konfigurationen die funktionierenden, natürlich - Windows: /magento-debugging/windows - Windows/Unix: /magento-debugging/mixed - Unix: /magento-debugging/unix
Demo: Debugging mit Zend Server CE und Eclipse PDT code4business Software GmbH Dennewartstr. 25-27 52068 Aachen Germany
Die typischen Problem zum Start lassen sich vermeiden Q: Irgendwie reagiert Magento nicht auf irgendeine Änderung, die ich eingestellt habe; z.b. wird beim Kopieren der Daten immer noch auf die alte URL zugegriffen. A: Erster Schritt sollte immer das Löschen der temporären Dateien sein. Alle Dateien außer der.htaccess unter var können im Entwicklungs-und Testbetrieb bedenkenlos gelöscht werden. Q: Egal was ich einstelle, es wird immer nur die erste Seite gedebugged. Was mache ich falsch? A: Es gibt eine Konfigurationsseite im Debug von Eclipse, die aber üblicherweise richtig eingestellt ist. Häufig ist das Problem, dass die Datenbank kopiert wurde, ohne in der core_config_data die Adresse anzupassen. Nach der ersten Runde landet man daher auf einem anderen Server und daher bricht das Debug ab. Q: Die Rewrites funktionieren beim Zend Server nicht. Was soll ich tun? A: Das liegt am Eintrag AllowOverride None in der httpd.conf für das Hauptverzeichnis (z.b. C:\Program Files\Zend\Apache2/htdocs). Um Magento Rewrites in.htaccess- Dateien zu ermöglichen, muss es stattdessen AllowOverride all heißen.
Herzlichen Dank für Ihre Aufmerksamkeit. code4business Software GmbH Dennewartstr. 25-27 52068 Aachen Germany