Die Überschrift könnte auch "Mein Herzensprojekt für Magento 1" heissen.
Als ich damals intensiv mit Magento 1 arbeitete, fiel mir immer wieder auf, dass es kein gutes CLI-Tool für Magento 1 gab. Stattdessen mussten unzählige repetitive Aufgaben wie Datenbankoperationen, Cache-Verwaltung und Konfigurationsänderungen manuell oder mit unübersichtlichen Skripten erledigt werden. Das kostete Zeit, Nerven und Energie. Diese Herausforderung frustrierte mich zunächst, doch sie inspirierte mich auch: Es musste eine einfachere Lösung geben!
Die Entstehung von n98-magerun war tatsächlich ein Zufall. Ursprünglich wollte ich lediglich Symfony-Komponenten testen und schrieb dafür ein kleines Kommandozeilen-Tool.
Da ich nicht wusste was ich machen kann kam ich auf die Idee einfach Magento 1 zu initialisieren.
Ich dachte immer, dass das erste Kommando cache:flush
gewesen wäre. Aber es war wohl eines der im Screenshot gelisteten Kommandos was ich dann meinem damaligen Kollegen Andreas Menk zeigte.
Er fand das "Ding" was ich gebaut hatte direkt nützlich und wollte es haben.Das war der Moment. Das war der Moment in dem das Tool geboren wurde.
Was n98-magerun kann
n98-magerun wurde als „Schweizer Taschenmesser“ für Magento 1 entwickelt. Es bietet eine Vielzahl nützlicher Befehle, die über die Kommandozeile ausgeführt werden können, und erleichtert so den Alltag von Entwicklern, Systemadministratoren und DevOps-Teams.
Ein Erfolg war auch die einfache Nutzung. Man lädt sich die ausführbare Phar Datei runter und ruft diese einfach auf. Eine phar Datei kann dann (wenn im PATH) für alle lokalen Magento Instanzen genutzt werden.
Auf Produktivsystemen konnte man im Shop Dinge ausführen oder eingreifen, ohne den Code anzufassen. Das war für Hoster ebenfalls wichtig.
Das Aktualisieren des Tools war und ist durch das self-update
Kommando auch einfach.
Die wichtigsten Funktionen:
Das Tool ist für Entwickler, Administratoren und Hoster gedacht.
Es kann u.a folgendes
- Installieren von Magento: Magnto 1 konnt man schwierig über die Kommandozeile installieren. Das wollten wir ändern.
Siehe Video https://www.youtube.com/watch?v=WU-CbJ86eQc - Datenbank-Management: Erstelle Backups, importiere und exportiere Datenbanken, optimiere Tabellen und vieles mehr. Eine meiner Lieblingsversionen (von Alexander Menk) ist das strippen von Daten.
Siehe Video: https://www.youtube.com/watch?v=ttjZHY6vThs - Cache-Verwaltung: Leere Caches mit einem einzigen Befehl, um Performance-Probleme schnell zu beheben.
- Konfigurationsänderungen: Passe Magento-Einstellungen direkt über die Kommandozeile an.
- Modul-Verwaltung: Aktiviere, deaktiviere und installiere Module im Handumdrehen.
- Migrationsscripte starten (Vorher ging das nur über die Webserver Ausführung was zu Timeouts führt und mehrfacher Ausführung)
Von Anfang an legte ich großen Wert darauf, dass n98-magerun flexibel und erweiterbar ist. Die modulare Architektur des Tools macht es möglich:
-
Eigene Befehle: Benutzer können individuelle Befehle hinzufügen und das Tool an ihre speziellen Anforderungen anpassen.
-
Community-Beiträge: Dank der Open-Source-Entwicklung konnten viele Ideen und Verbesserungen aus der Community integriert werden.
Qualität und Stabilität
Qualität war bei der Entwicklung von n98-magerun stets oberstes Gebot. Ziel war es, keine halbgaren Lösungen anzubieten, sondern solide und gut getestete Befehle bereitzustellen, auf die man sich verlassen kann.
Symfony als Basis
Das Symfony-Framework diente als stabile und gut strukturierte Grundlage für n98-magerun. Es ermöglichte eine saubere Architektur und erleichterte die Erweiterbarkeit.
PHPUnit
Wir haben schon immer Tests geschrieben. Bis heute ist das so.
Die Community
Ein großer Dank gilt der aktiven Community, die n98-magerun über die Jahre mitgestaltet und weiterentwickelt hat. Ohne die zahlreichen Beiträge und das Feedback wäre das Projekt nicht das, was es heute ist.
Der Name
Der Name „n98“ leitet sich von netz98 ab, dem Unternehmen, für das ich damals tätig war (inzwischen ist netz98 in der Firma valantic CEC aufgegangen). „Magerun“ kam mir als Idee da man das Magento System im Code über Mage::run
startete.
Eigentlich wusste ich nicht wie ich das Tool nennen soll. Als ich das sah, dachte ich es ist ein guter Name.
Lustigerweise sagt man in anderen Teilen der Welt nur "n98" und in Deutschland eher "Magerun".
Ich hatte immer mal wieder überlege es auf ein einfaches "Magerun" umzubenennen. Aber das ist wohl nicht so einfach.
Magento 2 und OpenMage
Als Magento 2 auf den Markt kam war n98-magerun ein Vorbild für die Core-Entwickler. Man bezog mich damahl mit ein und ich beriet damals auch die Magento Core-Entwickler beim Aufbau des in Magento 2 eingezogenen CLI Tools bin/magento
.
Es ist kein Zufall, dass dies (bis heute) auch auf Symfony Komponenten basiert.
Erst gab es den Versuch das Tool für Magento 1 auch für Magtento 2 gleichzeitig kompatibel zu bekommen. Das funktionierte aber nicht lange da die technische Basis so unterschiedlich war.
Es wurde dann das Tool n98-magerun2 gestartet.
Mit dem offiziellen EOL von Magento 1 liegt der Fokus von n98-magerun1 nun darauf, dass der Fork OpenMage damit funktioniert.
Wo findet ich das Tool
Der Source Code ist in Github unter: https://github.com/netz98/n98-magerun
Informationen gibt es auch auf der offiziellen Webseite: https://magerun.net/