Privates Blog von Christian Münch

Magento 2 - Release 2.0.0.0-dev46

Cover Image
Es ist wieder soweit. Magento (Ebay) hat einen neuen Release der Community Edition 2 Version veröffentlicht. Ein ausgewählter Kreis von Partnern hatte bereits das Vergnügen ein paar Tage vorher in Chicago exklusiv einen Einblick in die neuen Funktionen zu erlangen und seine Meinung dazu zu äußern. Ich persönlich finde das sehr unschön. Gerade in Deutschland gibt es viele Entwickler die sicherlich gerne etwas mehr in die Entwicklung involviert wären. Nicht, dass in der Vergangenheit Varien (Magento) mehr Wert auf den aktiven Austausch mit der Community wert gelegt hätte… Schade, hier hat Ebay mal wieder eine Change vertan.

Magento 2 Update - dev45

Cover Image
Lange ist es her, dass ich mir Magento 2 im Adminbereich angeschaut habe. Das letzte Update liegt schon einige Monate zurück. Die Changelogs habe ich mir zwar schon angeschaut, allerdings hatten ich und andere, einige Problem sich in den Adminbereich einzuloggen. Das Problem war, dass man wohl immer noch mit der uralten PHP 5.3 Version unterwegs sein musste und die Magento 2 Version noch nicht kompatibel mit PHP 5.3 war (obwohl PHP 5.

Magento / Nginx / Vagrant

Vor einiger Zeit hatte ich das Vergnügen auf dem Barcamp in Mainz von Stefan Husch, der selbst seit einigen Jahren in Ruby entwickelt und meinem ehemaligen Kollegen Mattias Gutjahr eine tolle Einführung in das Thema Puppet und Vagrant bekommen zu haben. Seit dem befasse ich mich immer mal wieder mit dem gesamten Thema “DevOps” und versuch Dinge die ich immer wieder machen muss zu automatisieren. Stefan ist mir hier ein gutes Stück vorraus.

n98-magerun Modulsystem

Cover Image
Seit Version 1.72.0 gibt es die Möglichkeit Kommandos oder Konfigurationen als Modul zu veröffentlichen. Module bieten eine einfache Möglichkeit Konfiguration und Kommandos direkt in einem Projekt oder einem Entwickler-Team zu teilen ohne, dass zuerst eine Konfiguration angepasst werden muss. Module Struktur Ein Modul besteht in seiner einfachsten Form aus einem Verzeichnis und einer Konfigurationsdatei mit dem Namen n98-magerun.yaml. Die Konfigurationsdatei muss direkt im Modulverzeichnis liegen. Innerhalb der Konfigurationsdatei könnt ihr bestehende Konfigurationen ändern, oder neue hinzufügen.

PhpStorm - Code Completion für Factories

Gerade getestet und für gut befunden. PhpStorm kann ohne fremde Hilfe nicht einfach für jedes Framework Fabrikmethoden auswerten. Bei Magento sind das z.B. Funktionen wie Mage::getModel('catalog/product') die im Hinterund die Klasse anhand einer XML Struktur ermitteln. Seit dem letzten Build (129.196) kann man nun selbst über ein alleinstehendes PHP Script die Auflösung in die Hand nehmen. Das sieht dann z.B. so aus: namespace PHPSTORM_META { /** @noinspection PhpUnusedLocalVariableInspection */ /** @noinspection PhpIllegalArrayKeyTypeInspection */ $STATIC_METHOD_TYPES = [ \Mage::helper('') => [ 'core/string' instanceof \Mage_Core_Helper_String, ], \Mage::getSingleton('') => [ 'core/resource' instanceof \Mage_Core_Model_Resource, ], \Mage::getModel('') => [ 'catalog/product' instanceof \Mage_Catalog_Model_Product, 'rating/rating' instanceof \Mage_Rating_Model_Rating, ], ]; } Empfohlen wird die Datei .

Gitosis über Web und CLI administrieren

Wer nicht so viel Geld ausgeben will, kann auf eine der vielen GIT Verwaltungstools zurückgreifen. Sehr beliebt sind hier gitolite oder gitosis Letzteres setzen wir bei netz98 seit Jahren erfolgreich ein. Leider bietet gitosis z.B. keine Weboberfläche zur Administration an. Das ist erst mal nicht weiter schlimm, wenn man nur wenige Repositories verwaltet. Doch mit wachsender Anzahl verliert man schnell die Übersicht. Das kann auch unter Umständen zu Sicherheitslücken führen. Verlässt ein Mitarbeiter das Unternehmen sollte man auch die Berechtigungen in den einzelnen Gruppen entziehen.

n98-magerun - Magento Rewrite Konflikte mit Jenkins testen

[Seit kurzem gibt es in n98-magerun die Möglichkeit einen Shop auf Rewrite Konflikte zu prüfen. Das Tool schaut nach ob mehrere Module versuchen eine Klasse zu rewriten. Sollte dies der Falls sein, wird über die PHP Reflection API zusätzlich geprüft ob die letzte Klasse der Rewrite-Kette von der vorherige erbt. Sollten zum Beispiel mehr als zwei Klassen den gleichen Rewrite definieren, wird über die gesamte Kette geprüft. Durch diese Prüfung möchte ich verhindern, dass es “False-Positives” gibt da der eine oder andere Entwickler vielleicht durchaus den Konflikt durch eine Vererbung behoben hat.

Lesbare Handles für die Magento Layout-XML

Manchmal möchte man in einem Layout-XML spezielle Anpassungen für bestimmte Kategorien, Produkte oder CMS Seiten durchführen. Dafür stellt Magento mehrere Möglichkeiten bereit. So kann man in das “Layout Update” Feld direkt in der Maske zum Bearbeiten des Produkts XML Code eintragen. Das ganze wird dann direkt in der Datenbank gespeichert. Wer aber z.B. die Änderungen gerne über eine XML Datei (Layout-XML) ausrollen möchte muss dann auf vordefinierte Handles wie z.B. PRODUCT_ zurückgreifen.

PhpStorm: Daten direkt aus Grid exportieren

Bei PhpStorm entdeckt man doch immer wieder tolle Funktionalitäten. Beim Arbeiten mit den DB-Tools ist mir aufgefallen, dass man die Daten im Grid super einfach in verschiedenen Formaten exportieren kann. Einfach einen Bereich markieren und rechts klicken. Im Context-Menü “Copy Data as” auswählen und das Export-Format wählen.