Türchen 07: Praktische Tools für die Magento Entwicklungsumgebung

Dank einer Einladung der Webguys erhalte ich die Chance einen kleinen Beitrag zum Magento Adventskalender zu leisten. Ich befasse mich seit über 10 Jahren aus Leidenschaft mit Opensource Software, speziell mit Lösungen im Web- und Hosting Umfeld. Seit ca. 1,5 Jahren arbeite ich nun intensiver mit Magento. Ich bin in der dankbaren Situation meine eCommerce Abenteuer teilweise zusammen mit den Webguys Ingo und Tobias bei der code-x GmbH erleben zu dürfen. Zudem bin ich ebenfalls als Magento Freelancer tätig. Mein "Türchen" stellt praktische Tools vor die einem Magento Entwickler bei seiner täglichen Arbeit helfen können.

1. PhpStorm

Nach vielen Experimenten mit anderen IDEs wie Netbeans, Zend Studio und Eclipse sowie alternativen Ansätzen wie z.B. vim arbeite ich nun seit ca. 6 Monaten absolut zufrieden mit PhpStorm. Die IDE kostet in der Tat etwas Geld, ist aber die erste IDE bei der ich bisher keiner Probleme hatte. Für interessierte gibt es eine kostenlose Testversion. Wer täglich mit Magento oder allgemein mit PHP arbeitet und es nicht ohnehin schon gemacht hat sollte PhpStorm unbedingt ausprobieren.

Mehr Informationen: PhpStorm Homepage

2. LAMP Server inkl. Xdebug

Über die Notwendigkeit eines Webservers direkt auf der Workstation kann man sich streiten. Speziell die Xdebug PHP-Extension, die das Debugging von PHP Code unheimlich erleichtert, sollte jedoch nicht auf einem Livesystem genutzt werden. Xdebug hat einen mess- und (teilweise) spürbaren Einfluss auf die Performance von Webservern und kann auf produktiven Systemen sowohl Speicherverbrauch als auch die Zeit für dass Verarbeiten von PHP Quellcode in negativer Hinsicht beeinflussen. Wer keine dedizierte Testumgebung besitzt ist daher mit einer lokalen LAMP Installation sehr gut beraten.
Mehr Informationen:

3. phpMyAdmin

Auf einem Entwicklungssystem darf phpMyAdmin nicht fehlen. Für die Verwaltung von MySQL Datenbanken ist es eine unheimlich große Hilfe. Dies fängt bei dem Erstellen und Verwalten von Datenbanken und Inhalten an, ist aber ebenso bei der Entwicklung selbst von großer Hilfe. So kann man Datenbankabfragen die in Magento ausgeführt werden manuell untersuchen, prüfen ob eigene Extensions korrekte Daten in der Datenbank ablegen usw. Man sollte jedoch darauf achten dass phpMyAdmin auf einem Produktivsystem nicht öffentlich zugänglich ist. Ein Angreifer könnte sich sonst z.B. über Bruteforce Attacken unerlaubten Zugang zur Datenbank verschaffen.

4. Versionskontrolle

Mit Tools wie z.B. SubversionGit oder Mercurial kann ein Magento Entwickler die einzelnen Entwicklungsschritte von Dateien protokollieren. Alle Änderungen werden in einem sogenannten Repository erfasst. Verursacht z.B. eine Änderung an der Software Probleme kann jederzeit eine vorherige Version einer Datei wiederhergestellt oder Unterschiede zwischen einzelnen Versionen angezeigt werden. Bei der Fehlersuche und Problembehebung kann dies sehr hilfreich sein.

Ein weiterer Aspekt der für die Versionskontrolle spricht ist das Stichwort Deployment. Wenn der Quellcode z.B. mit Git oder Subversion verwaltet wird kann dieser in Form eines "Checkouts" (einer "Kopie" des Repositories) sowohl auf einem Testserver als auch auf dem Produktivsystem hinterlegt werden. Werden Änderungen am Quellcode vorgenommen wird auf dem Testsystem ein Update durchgeführt und getestet. Wenn die Änderungen nun auf das Livesystem übertragen werden sollen muss dort nur noch die Kopie des Checkouts aktualisiert werden. Im Detail auf Deployment Strategien und Tools wie Subversion oder Git im einzelnen einzugehen würde den Rahmen sprengen.

Mehr Informationen:

5. MySQL Workbench

Man kann MySQL Tabellen, z.B. bei der Erstellung von neuen Extensions, mit phpMyAdmin erstellen. Sehr praktisch ist vor allem bei komplexeren Anforderungen an die Datenbank diese vorab zu planen. So sieht man den gesamten Zusammenhang in der Übersicht, entwickelt vielleicht noch weitere Ideen und kann vor allem redundante Datenhaltung vermeiden. Ideal dafür ist die MySQL Workbench:
  • Es gibt eine grafische Darstellung der Tabellen und deren Relationen.
  • Fremdschlüssel können sehr einfach verwaltet werden.
  • Der Datenbankentwurf kann direkt auf einen MySQL Server übertragen werden.
Vorteil gegenüber dem Entwurf mit alternativen Tools oder auf Papier ist die Möglichkeit Datenbanken bzw. Tabellen direkt auf einen MySQL Server übertragen zu können.
Mehr Informationen: MySQL Workbench Homepage

6. Kiki

Wer reguläre Ausdrücke (RegExp) entwickelt kann diese mithilfe von Kiki vorab testen. Dazu wird in Kiki einfach eine zu erwartende Zeichenkette als Beispieltext hinterlegt und über eine separate Zeile der reguläre Ausdruck definiert. Lässt man den Ausdruck nun von Kiki auf den Text anwenden wird der gefundene Text farbig hervorgehoben. So kann man sehr komfortabel den passenden Ausdruck entwickeln. Mehr Informationen: Kiki Homepage

7. Mindmeister

Durch die Erstellung von Mindmaps kann man auf sehr natürlichem Weg unstrukturierte Gedanken zu einem bestimmten zentralen Thema, sei es eine neue Extension oder eine Dokumentation, strukturieren. Wikipedia beschreibt MindMaps wie folgt:
Eine Mind-Map (englisch: mind map; auch: Gedanken[land]karteGedächtnis[land]karte) beschreibt eine besonders von Tony Buzan geprägte kognitive Technik, die man z. B. zum Erschließen und visuellen Darstellen eines Themengebietes, zum Planen oder für Mitschriften nutzen kann. Hierbei soll das Prinzip der Assoziation helfen, Gedanken frei zu entfalten und die Fähigkeiten des Gehirns zu nutzen. Die Mind-Map wird nach bestimmten Regeln erstellt und gelesen. Den Prozess bzw. das Themengebiet bzw. die Technik bezeichnet man als Mind-Mapping.
Es gibt neben kommerziellen Tools und der Möglichkeit Mindmaps mit Stift und Papier zu erstellen, den Webservice Mindmeister. Eine absolut tolle Umsetzung der Mindmapping-Idee die sowohl im Browser als auch auf Smartphones und Tablets genutzt werden kann. Mehr Informationen: Mindmeister

8. Pagespeed & YSlow

Die Pagespeed Extension von Google gibt es sowohl für Google Chrome als auch für Firefox. Es werden die verschiedensten Kriterien, welche direkten oder indirekten Einfluss auf die Geschwindigkeit beim Seitenaufbau haben, geprüft. Einige der Tests und Vorschläge beziehen sich auf die Server- und Hostingebene. Für den Entwickler interessanter sind die Empfehlungen zur Performance Optimierung von HTML, CSS und JavaScript. Ergänzend zu Pagespeed gibt es als weiteres Plugin YSlow (gelesen "why-slow", was übersetzt bedeutet "warum langsam?"). Auch YSlow führt eine Reihe von Tests aus und schlägt Optimierungen vor. Viele Empfehlungen der beiden Plugins decken sich natürlich. Wer gerne das Maximum herausholen möchte sei dennoch die Verwendung von beiden Plugins empfohlen. Mehr Informationen: Pagespeed bzw. YSlow Die Liste erhebt natürlich keinen Anspruch auf Vollständigkeit. Weitere Vorschläge sind mehr als willkommen. Welche Tools nutzen andere und sollten hier unbedingt erwähnt werden? Auf Kommentare und Anregungen freuen wir uns!


Ein Beitrag von Jan Brinkmann
Jan's avatar

Jan Brinkmann arbeitet seit über zehn Jahren mit Open-Source-Software und bloggt darüber unter http://the-luckyduck.de. Er ist bei der code-x GmbH aus Paderborn im Bereich Magento angestellt und arbeitet daneben als freiberuflicher Webentwickler.

Alle Beiträge von Jan

Kommentare
Jan Brinkmann am

Bzgl. Netbeans, korrigiert. Sollte eigentlich einmal Eclipse heißen ;)

Vielen Dank für die weiteren Tipps! phpMyAdmin ist natürlich speziell auf einer Entwicklungsumgebung interessant. Auf einem produktiven System gilt "nur mit Vorsicht genie0en" ;).

Die anderen Tools für MySQL finde ich auch echt interessant. Leider gibt es jedoch HeidiSQL nicht für Linux. :/

David am

Ich verwende inzwischen überhaupt keinen phpMyAdmin mehr. Das Risiko so ein mächtiges Tool im Docroot zu haben ist mir einfach zu groß. Mit dem bereits genannten MySQL Workbench kann man auch prima DB-Verbindungen über einen SSH-Tunnel aufbauen und darüber seine DB pflegen. Das ist dann auch sicher. Ok, falls man keinen SSH-Zugang hat, hat phpMyAdmin möglicherweise eine Daseinsberechtigung ^^ Und falls man etwas mehr Bearbeitungskomfort als im kostenlosen Workbench möchte, kann man auf die kostenpflichtige Tools wie Navicat, SQLyog oder HeidiSQL zurückgreifen. Navicat setzen wir zum Beispiel auch für den Struktur-Abgleich zwischen Live- und Entwicklungsdatenbank ein.

Falls man beim Mindmapping nicht auf ein Online-Tool zurückgreifen möchte, gibt es mit das Open-Source-Projekt Freemind.

Und noch ne Kleinigkeit: Netbeans steht bei der IDE-Aufzählung zweimal drin ;)

Tobias Vogt am

tonigrigoriu (https://twitter.com/#!/tonigrigoriu) hat mir noch den Tipp gegeben das es unter http://stackoverflow.com/questions/4609010/what-tools-and-extensions-are-critical-for-magento-development auch noch eine schicke Sammlung gibt :)

Andreas von Studnitz am

Danke für die schöne Übersicht. Für eine Entwicklungsumgebung unter Windows empfehle ich statt XAMPP den Zend Server CE mit integriertem Zend Debugger. Damit habe ich sehr gute Erfahrungen gemacht, und das Debugging funktioniert auch völlig problemlos (z.B. mit PhpStorm, das ich auch nutze). Der Zend Server CE ist dabei kostenlos und bringt Apache, PHP und MySQL bereits mit.

Dein Kommentar