Warum Magerun (k)ein Bestandteil von Magento 2 ist

Ein Interview mit Magerun-Erfinder Christian Münch über die Entstehung von Magerun und neue Kommandos für das weltweit bei Magento-Entwicklern beliebte Terminal-Tool

Ende März veröffentlichte netz98 Magerun2 als "stable version". Wir nahmen das Release zum Anlass, Magerun-Initiator Christian Münch um ein Interview als Ergänzung unserer "Besser Entwickeln mit Magerun"-Serie zu bitten. Christian ist Leiter der Magento-Entwicklung bei netz98 und rief das Terminal-Tool für Magento-Entwickler 2012 ins Leben. In seinem Blog schrieb er damals: "Ich würde mich freuen, wenn jemand das Tool nutzen oder auch nur Testen würde." Dieser bescheidene Aufruf brachte eine internationale Magerun-Community mit zahlreichen Kontributoren hervor. Auch bei TUDOCK verwenden wir gerne fremde und eigene Magerun-Kommandos, um Zeit bei der Shopentwicklung mit Magento zu sparen. Mehr über Magerun unter http://magerun.net.

magerun-Erfinder Christian Münch

Magerun-Erfinder Christian Münch

Besser entwickeln mit Magerun #6: Interview mit Christian Münch

Christian, wie bist du auf die Idee gekommen, Magerun zu entwickeln? Gab es einen konkreten Anlass?

Eigentlich gab es keinen initialen Plan, das Tool zu entwickeln. Ich wollte mich damals einfach mit den Symfony-Komponenten beschäftigen. Am besten ist es immer, wenn man beim Ausprobieren ein konkretes Ziel verfolgt.

Ich dachte, es wäre irgendwie nicht schlecht, Magento anzusteuern. So kam es zu dem ersten n98-magerun-Kommando "cache:flush". Ich verpackte das Kommando in einer .phar Datei und zeigte es am nächsten Morgen einem Kollegen. Seine Reaktion war: "Kann ich das haben?"

Wie ist die Weiterentwicklung von Magerun aktuell organisiert?

Momentan liegt der Schwerpunkt der Weiterentwicklung auf der Version 2 für Magento 2. Da es ein Community-Projekt ist, kann sich jeder daran beteiligen. Am besten erstellt man einen Pull-Request über Github. Wir prüfen dann den Pull-Request. Genügt die Anpassung unseren Qualitätskriterien, wird der Pull-Request dann in die Hauptversion übernommen.

Wir nutzen Tools wie Travis, Circle CI oder Scrutinizer, um die Qualität sehr hoch zu halten. Das machen wir auch, weil wir wissen, dass n98-magerun inzwischen in kritischen Infrastrukturen eingesetzt wird.

Wo liegen entwicklungstechnisch die Unterschiede zwischen Magerun1 und Magerun2? Welche Ansätze sind neu, wie haben sich die Befehle geändert?

Im Groben gibt es keine großen Unterschiede zwischen Version 1 und Version 2. Im Detail mussten wir allerdings einiges anpassen. So ist die Initialisierung von Magento 2 komplett anders. Befehle wie "sys:setup:run" sind in Magento 2 nicht mehr notwendig, da Magento 2 manch eigene Kommandos mitbringt, die wir alle automatisch laden.

Neu ist auf jeden Fall die Dependecy Injection. Version 1 enthält viele "Mage::getModel"-Aufrufe im Code. In Version 2 nutzen wir eine spezielle "inject"-Methode, die den Magento 2 Object Manager automatisch verwendet. Von der Constructor Injection haben wir Abstand genommen, da alle Symfony-Kommandos immer direkt instanziiert werden. Damit laden die n98-magerun-Kommandos deutlich schneller als die nativen Magento-Kommandos.

Wie lange werdet ihr Magerun1 noch weiterentwickeln?

Bisher gibt es keinen Plan, die Entwicklung einzustellen. Die große Weiterentwicklung findet allerdings jetzt schon nicht mehr statt. Vermutlich wird das Tempo weiter abnehmen, sobald der offizielle Magento 1-Support nicht mehr vorhanden ist.

Welche Funktionen sind kürzlich in Magerun2 hinzugekommen und was habt ihr weiter geplant?

Die nächsten Funktionen beziehen sich auf das komfortable Auflisten von Konfigurationsinhalten. So haben wir gerade ein Kommando veröffentlicht, welches die Admin-ACLs in einem Baum darstellen kann.

Ein Ausbau der "dev:console" um weitere Code-Generatoren ist ebenfalls geplant. Bei der Magento Imagine kamen auch Ideen, die Arbeit mit Varnish einfacher zu machen.

Warum ist Magerun kein Bestandteil von Magento?

Ist es doch! Zumindest die Idee wurde übernommen. Die Magento 2 CLI Tools sind in einer Abstimmung zwischen mir und Magento entwickelt worden.

Es gibt aber gute Gründe, dass n98-magerun nicht im Core enthalten ist. Ein Grund ist die Geschwindigkeit der Weiterentwicklung. Wir sind beim Release nicht an eine Magento-Version gebunden.

Ebenso ist es von Vorteil, wenn man Kommandos für reine Entwicklungs- oder Administrationszwecke entwickeln kann und diese nicht im Shop installiert werden müssen. Das ist mit n98-magerun möglich. Man kann dann auch alle Kommandos in allen lokal installierten Magento-Instanzen nutzen. Das ist ein Vorteil für Agenturen oder Provider. Es lassen sich Magento-Funktionen nutzen, ohne das Kundensystem anpassen zu müssen.

Was sind die Vorteile von Magerun2 gegenüber bin/magento?

Die Kommandos müssen nicht installiert werden und stehen allen Installationen zur Verfügung. Wir erkennen automatisch das Root-Verzeichnis des Shops. Damit kann man die Kommandos ohne "../../" in der Konsole aufrufen. Das spart viel Zeit. Da wir alle Magento-Kommandos laden, gibt es eigentlich nur Vorteile zu "bin/magento" :-)

Du hast bestimmt noch mehr gute Entwicklungsideen. Welche Projekte interessieren dich aktuell?

Momentan verfolge ich ein Projekt meines Kollegen Matthias Walter. Er hat vor kurzem das Tool "MageDeploy2" veröffentlicht. Das Tool richtet sich an kleinere Agenturen und Shopbetreiber, die das Deployment vollautomatisiert durchführen wollen.

Sonst beobachte ich auch viele andere Projekte. Das bezieht sich nicht nur auf das PHP-Umfeld. Es ist immer gut über den Tellerrand zu schauen. Interessant finde ich gerade alles über ElasticSearch, CQRS, Event Sourcing, Message Queues, Headless-Ansätze – um ein paar Themen zu nennen.

Was sind deine Magerun-Lieblingsbefehle?

Mein Lieblingsbefehle sind "db:dump", "dev:console" und der Klassiker "cache:flush". Gerade die Developer-Console bietet einige nützliche Dinge wie Code-Generierung. Man kann damit auch schnell mal seinen Code ausprobieren.

Vielen Dank für deine Antworten!

Wenn ihr mehr über Magerun wissen und Tipps zu nützlichen Befehlen bekommen wollt, werft einen Blick in Marcos und Timos Beiträge unserer Magerun-Serie.

Autor: Kategorie: Webentwicklung
Schlagwörter: Magento
YTo2OntzOjY6ImZldXNlciI7aTowO3M6MzoicGlkIjtpOjk3O3M6MzoiY2lkIjtpOjEwOTcxMjQyOTE7czo0OiJjb25mIjthOjEwOntzOjEwOiJzdG9yYWdlUGlkIjtpOjEyNDtzOjE0OiJleHRlcm5hbFByZWZpeCI7czoxMToidHhfbmV3c19waTEiO3M6MTM6IlVzZXJJbWFnZVNpemUiO2k6MTg7czo5OiJhZHZhbmNlZC4iO2E6MTp7czoyMToic2hvd0NvdW50Q29tbWVudFZpZXdzIjtpOjA7fXM6ODoic2hhcmluZy4iO2E6MTp7czoxMjoidXNlU2hhcmVJY29uIjtOO31zOjg6InJhdGluZ3MuIjthOjM6e3M6MTY6InJhdGluZ0ltYWdlV2lkdGgiO2k6MTE7czoxNjoicmV2aWV3SW1hZ2VXaWR0aCI7aToxNjtzOjg6Im1vZGVwbHVzIjtzOjQ6ImF1dG8iO31zOjY6InRoZW1lLiI7YTo3OntzOjI2OiJib3htb2RlbFRleHRhcmVhTGluZUhlaWdodCI7aTozMDtzOjI0OiJib3htb2RlbFRleHRhcmVhTmJyTGluZXMiO2k6NDtzOjE1OiJib3htb2RlbFNwYWNpbmciO2k6MTA7czoxODoiYm94bW9kZWxMaW5lSGVpZ2h0IjtpOjIwO3M6MTg6ImJveG1vZGVsTGFiZWxXaWR0aCI7aToxMzQ7czoyNjoiYm94bW9kZWxMYWJlbElucHV0UHJlc2VydmUiO2k6MTtzOjIyOiJib3htb2RlbElucHV0RmllbGRTaXplIjtpOjM1O31zOjE3OiJwcmVmaXhUb1RhYmxlTWFwLiI7YToxMDp7czoxNDoidHhfYWxidW0zeF9waTEiO3M6MTc6InR4X2FsYnVtM3hfaW1hZ2VzIjtzOjE1OiJ0eF9jb21tZXJjZV9waTEiO3M6MjA6InR4X2NvbW1lcmNlX3Byb2R1Y3RzIjtzOjEyOiJ0eF9pcmZhcV9waTEiO3M6MTA6InR4X2lyZmFxX3EiO3M6MTU6InR4X21pbmluZXdzX3BpMSI7czoxNjoidHhfbWluaW5ld3NfbmV3cyI7czo5OiJ0eF90dG5ld3MiO3M6NzoidHRfbmV3cyI7czoxMToidHRfcHJvZHVjdHMiO3M6MTE6InR0X3Byb2R1Y3RzIjtzOjI0OiJ0eF93ZWNzdGFmZmRpcmVjdG9yeV9waTEiO3M6MjU6InR4X3dlY3N0YWZmZGlyZWN0b3J5X2luZm8iO3M6MTI6InR4X2NvbW11bml0eSI7czo4OiJmZV91c2VycyI7czoxOToidHhfY3d0Y29tbXVuaXR5X3BpMSI7czo4OiJmZV91c2VycyI7czoxMToidHhfbmV3c19waTEiO3M6MjU6InR4X25ld3NfZG9tYWluX21vZGVsX25ld3MiO31zOjExOiJzaG93VWlkTWFwLiI7YTo1OntzOjk6InR4X3R0bmV3cyI7czo3OiJ0dF9uZXdzIjtzOjExOiJ0dF9wcm9kdWN0cyI7czo3OiJwcm9kdWN0IjtzOjEyOiJ0eF9jb21tdW5pdHkiO3M6NDoidXNlciI7czoxOToidHhfY3d0Y29tbXVuaXR5X3BpMSI7czoyNToiYWN0aW9uPWdldHZpZXdwcm9maWxlJnVpZCI7czoxMToidHhfbmV3c19waTEiO3M6NDoibmV3cyI7fXM6MTI6IlJlcXVpcmVkTWFyayI7czoxOiIqIjt9czo0OiJsYW5nIjtzOjI6ImRlIjtzOjM6InJlZiI7czoyOToidHhfbmV3c19kb21haW5fbW9kZWxfbmV3c18yOTEiO30%3DYTo0OntzOjQ6ImNvbmYiO2E6MzU6e3M6MTc6InVzZVdlYnBhZ2VQcmV2aWV3IjtzOjE6IjEiO3M6MjI6InVzZVdlYnBhZ2VWaWRlb1ByZXZpZXciO3M6MToiMSI7czoyMDoid2VicGFnZVByZXZpZXdIZWlnaHQiO3M6MjoiNzAiO3M6MjA6Im1heENoYXJzUHJldmlld1RpdGxlIjtzOjI6IjcwIjtzOjMxOiJ3ZWJwYWdlUHJldmlld0Rlc2NyaXB0aW9uTGVuZ3RoIjtzOjM6IjE2MCI7czozODoid2VicGFnZVByZXZpZXdEZXNjcmlwdGlvbk1pbmltYWxMZW5ndGgiO3M6MjoiNjAiO3M6Mjc6IndlYnBhZ2VQcmV2aWV3Q2FjaGVUaW1lUGFnZSI7czozOiIxODAiO3M6MzM6IndlYnBhZ2VQcmV2aWV3Q2FjaGVUaW1lVGVtcEltYWdlcyI7czoyOiI2MCI7czozMDoid2VicGFnZVByZXZpZXdDYWNoZUNsZWFyTWFudWFsIjtzOjE6IjAiO3M6Mjg6IndlYnBhZ2VQcmV2aWV3TnVtYmVyT2ZJbWFnZXMiO3M6MjoiMTAiO3M6Mzg6IndlYnBhZ2VQcmV2aWV3U2Nhbk1pbmltYWxJbWFnZUZpbGVTaXplIjtzOjQ6IjE1MDAiO3M6MzA6IndlYnBhZ2VQcmV2aWV3U2Nhbk1pbkltYWdlU2l6ZSI7czoyOiI0MCI7czozMDoid2VicGFnZVByZXZpZXdTY2FuTWF4SW1hZ2VTaXplIjtzOjM6IjQ1MCI7czoyOToid2VicGFnZVByZXZpZXdTY2FuTWluTG9nb1NpemUiO3M6MjoiMzAiO3M6MzE6IndlYnBhZ2VQcmV2aWV3U2Nhbk1heEltYWdlU2NhbnMiO3M6MjoiNDAiO3M6Mzg6IndlYnBhZ2VQcmV2aWV3U2Nhbk1heEltYWdlU2NhbnNGb3JMb2dvIjtzOjI6IjU1IjtzOjQwOiJ3ZWJwYWdlUHJldmlld1NjYW5NYXhIb3J6aXpvbnRhbFJlbGF0aW9uIjtzOjI6IjU7IjtzOjM3OiJ3ZWJwYWdlUHJldmlld1NjYW5tYXh2ZXJ0aWNhbHJlbGF0aW9uIjtzOjE6IjMiO3M6MzA6IndlYnBhZ2VQcmV2aWV3U2NhbkxvZ29QYXR0ZXJucyI7czoxMDoibG9nbyxjcmdodCI7czozODoid2VicGFnZVByZXZpZXdTY2FuRXhjbHVkZUltYWdlUGF0dGVybnMiO3M6NTc6InBpeGVsdHJhbnMsc3BhY2VyLHlvdXR1YmUscmNsb2dvcyx3aGl0ZSx0cmFuc3BhLGJnX3RlYXNlciI7czozODoid2VicGFnZVByZXZpZXdEZXNjcmlwdGlvblBvcnRpb25MZW5ndGgiO3M6MjoiNDAiO3M6MjU6IndlYnBhZ2VQcmV2aWV3Q3VybFRpbWVvdXQiO3M6NDoiNzAwMCI7czoxMjoidXNlUGljVXBsb2FkIjtzOjE6IjAiO3M6MTI6InVzZVBkZlVwbG9hZCI7czoxOiIwIjtzOjEzOiJwaWNVcGxvYWREaW1zIjtzOjM6IjEwMCI7czoxNjoicGljVXBsb2FkTWF4RGltWCI7czozOiI4MDAiO3M6MTY6InBpY1VwbG9hZE1heERpbVkiO3M6MzoiOTAwIjtzOjIyOiJwaWNVcGxvYWRNYXhEaW1XZWJwYWdlIjtzOjM6IjQ3MCI7czoyMzoicGljVXBsb2FkTWF4RGltWVdlYnBhZ2UiO3M6MzoiMzAwIjtzOjIwOiJwaWNVcGxvYWRNYXhmaWxlc2l6ZSI7czo0OiIyNTAwIjtzOjIwOiJwZGZVcGxvYWRNYXhmaWxlc2l6ZSI7czo0OiIzMDAwIjtzOjE4OiJzb3VuZGNsb3VkQ2xpZW50SUQiO3M6MDoiIjtzOjIyOiJzb3VuZGNsb3VkQ2xpZW50U2VjcmV0IjtzOjA6IiI7czoyMDoidXNlVG9wV2VicGFnZVByZXZpZXciO3M6MDoiIjtzOjI0OiJ0b3BXZWJwYWdlUHJldmlld1BpY3R1cmUiO2k6MDt9czoxMToiYXdhaXRnb29nbGUiO3M6Mjg6IldhcnRlIGF1ZiBBbnR3b3J0IHZvbiBHb29nbGUiO3M6ODoidHh0aW1hZ2UiO3M6MTM6IkJpbGQgZ2VmdW5kZW4iO3M6OToidHh0aW1hZ2VzIjtzOjE1OiJCaWxkZXIgZ2VmdW5kZW4iO30%3DYTowOnt9YTowOnt9YTo3OntzOjE2OiJjb21tZW50TGlzdEluZGV4IjthOjE6e3M6MzI6ImNpZHR4X25ld3NfZG9tYWluX21vZGVsX25ld3NfMjkxIjthOjE6e3M6MTA6InN0YXJ0SW5kZXgiO2k6MTU7fX1zOjE0OiJjb21tZW50c1BhZ2VJZCI7aTo5NztzOjE2OiJjb21tZW50TGlzdENvdW50IjtpOjEwOTcxMjQyOTE7czoxMjoiYWN0aXZlbGFuZ2lkIjtpOjA7czoxNzoiY29tbWVudExpc3RSZWNvcmQiO3M6Mjk6InR4X25ld3NfZG9tYWluX21vZGVsX25ld3NfMjkxIjtzOjEyOiJmaW5kYW5jaG9yb2siO3M6MToiMCI7czoxMjoibmV3Y29tbWVudGlkIjtOO30%3D YTo1OntzOjExOiJleHRlcm5hbFVpZCI7aToyOTE7czoxMjoic2hvd1VpZFBhcmFtIjtzOjQ6Im5ld3MiO3M6MTY6ImZvcmVpZ25UYWJsZU5hbWUiO3M6MjU6InR4X25ld3NfZG9tYWluX21vZGVsX25ld3MiO3M6NToid2hlcmUiO3M6MTcwOiJhcHByb3ZlZD0xIEFORCBleHRlcm5hbF9yZWY9J3R4X25ld3NfZG9tYWluX21vZGVsX25ld3NfMjkxJyBBTkQgcGlkPTEyNCBBTkQgdHhfdG9jdG9jX2NvbW1lbnRzX2NvbW1lbnRzLmRlbGV0ZWQ9MCBBTkQgdHhfdG9jdG9jX2NvbW1lbnRzX2NvbW1lbnRzLmhpZGRlbj0wIEFORCBwYXJlbnR1aWQ9MCI7czoxMDoid2hlcmVfZHBjayI7czoxMzk6ImV4dGVybmFsX3JlZj0ndHhfbmV3c19kb21haW5fbW9kZWxfbmV3c18yOTEnIEFORCBwaWQ9MTI0IEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuZGVsZXRlZD0wIEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuaGlkZGVuPTAiO30%3D YToyOntpOjA7czoxNDk6IjxpbWcgc3JjPSIvdHlwbzNjb25mL2V4dC90b2N0b2NfY29tbWVudHMvcmVzL2Nzcy90aGVtZXMvdHVkb2NrL2ltZy9wcm9maWxlLnBuZyIgY2xhc3M9InR4LXRjLXVzZXJwaWMgdHgtdGMtdWltZ3NpemUiIHRpdGxlPSIiICBpZD0idHgtdGMtY3RzLWltZy0iIC8%2BIjtpOjk5OTk5O3M6MTUxOiI8aW1nIHNyYz0iL3R5cG8zY29uZi9leHQvdG9jdG9jX2NvbW1lbnRzL3Jlcy9jc3MvdGhlbWVzL3R1ZG9jay9pbWcvcHJvZmlsZWYucG5nIiBjbGFzcz0idHgtdGMtdXNlcnBpY2YgdHgtdGMtdWltZ3NpemUiIHRpdGxlPSIiICBpZD0idHgtdGMtY3RzLWltZy0iIC8%2BIjt9
Bitte bestätigen Sie
Nein
Ja
Information
Ok
Vorschau wird geladen ...
* Pflichtfeld
Ihr Kommentar ist eine Antwort auf den folgenden Kommentar

Wir behalten uns vor, Kommentare zu löschen, beispielsweise wenn sich diese nicht auf den Beitrag beziehen, zur Eigenwerbung missbraucht werden, persönliche Daten anderer enthalten, diskriminieren, beleidigen oder Rechte verletzen.

Datenschutzhinweis: Wenn Sie einen Kommentar oder sonstigen Beitrag in unserem Blog hinterlassen, speichern wir neben Ihren Angaben Ihre IP-Adresse. Darüber hinaus können Sie die Beiträge und Kommentare unseres Blogs abonnieren. Das Kommentarabonnement können Sie jederzeit abbestellen. Weitere Informationen finden Sie in unserer Datenschutzerklärung.

E-Commerce & Webentwicklung: Wir realisieren und optimieren Internetprojekte. Unser Fachgebiet sind Onlineshops, Rich Internet Applications und anspruchsvolle Onlineauftritte. Über unsere Arbeit schreiben wir. Hier im Blog von TUDOCK.