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
- Apache und PHP Installation: Ubuntu Server Guide - Apache
- MySQL Installation: Ubuntu Server Guide - MySQL
- Xdebug Installation: http://scottfaisal.com/installing-xdebug-on-ubuntu-10-04/
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. Subversion, Git 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:
- Online Buch zu Subversion: Version Control with Subversion
- Offizielle Git Dokumentation: http://git-scm.com/documentation
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.
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 Homepage7. 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]karte, Gedä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