Wie jedes Jahr seit meinem Blog-Relaunch beginne ich das Jahr mit einer kleinen Retrospektive und Ausblick.
Collection Pipelines in PHP
Leider ist der Beitrag nur auf Englisch verfügbar.
What to mock in a Magento 2 unit test
Leider ist der Beitrag nur auf Englisch verfügbar.
Learn Refactoring to Framework Independent Code
Leider ist der Beitrag nur auf Englisch verfügbar.
PDF Generierung in Magento 2
Die Core Methoden zum Generieren von PDF Dateien sind auch in Magento 2 eher unflexibel. Eine Alternative sind Tools zum Konvertieren von HTML zu PDF.
In unserem aktuellen Magento 2 Projekt, das wir (integer_net) gemeinsam mit der Stämpfli AG entwickeln, gibt es die Anforderung, aus ausgewählten Produkten dynamisch einen PDF Katalog zu erstellen, der im Prinzip das gleiche Layout hat wie die Produktlisten im Shop. Die PDF aufgrund von HTML zu generieren lag also nahe.
In diesem Beitrag stelle ich unsere Lösung vor, die wkhtmltopdf
mit dem Magento Layout integriert. Am Ende gibt es auch einen Link zum Basismodul auf Github.
Die Woche auf StackExchange #40/2016
Nachdem der letzte “Wochen auf StackExchange” Post recht lang geworden ist, komme ich zurück auf den wöchentlichen Zeitplan:
Magento 2 Antworten
- Ich habe für meine eigene Frage von neulich eine elegante Lösung gefunden, allein mit DI Konfiguration: Force products collection to use EAV instead of flat table (mit persönlichem Upvote von Ivan Chepurny, sie kann also so schlecht nicht sein)
- Dependency Injection with dynamic constructor values ist ein weiteres Beispiel für die Mächtigkeit von Magentos DI Konfiguration, hier in Kombination mit externen Bibliotheken.
- Eine allgemeine Frage zu Modul-Architektur: Best practice for location of a class
- In Magento 2 Layout Events: controller_action_layout_render_before vs. layout_render_before sinniere ich darüber, wie man am besten dynamische Änderungen am Layout vornimmt. Das Ergebnis ist, die genannten Events gar nicht mehr zu nutzen.
- Ist Magento kompatibel mit PHP 7.1? Wahrscheinlich, aber Composer meckert: Magento 2.1.1 not compatibile with PHP 7.1.0
Offene Fragen
- (Magento 2) Ich versuche, einen RequireJS Override abhängig von Backend-Konfiguration zu machen: Conditional RequireJS configuration
- (Magento 1) Geo IP based store view selection with Varnish – wurde beantwortet, ich muss es allerdings noch ausprobieren, um zu einer vollständigen Lösung zu gelangen.
5 Minuten Tipps: Form Usability
Lern-Kaffeepause! Heute ein paar Tipps zu “Form Usability”, ein Thema das auch Backend-Entwickler nicht links liegen lassen sollten.
- Der endgültige und einzig richtige Weg, Email-Adressen zu validieren:
Und für die Form-Validierung: Prüfe, ob ein “@” vorkommt. Nicht mehr und nicht weniger. Wer wissen möchte, warum, lese hier: The 100% correct way to validate email addresses.
- In einem Punkt muss ich allerdings widersprechen:
Continue reading “5 Minuten Tipps: Form Usability”
Die Wochen auf StackExchange #37-39/2016
Hier wieder eine Zusammenfassung von interessanten Posts auf StackExchange der letzten Wochen.
Domain-Logik in Magento-Anpassungen isolieren
Ich habe in letzter Zeit viel dafür plädiert, Geschäftslogik vom Framework (im Speziellen Magento) zu entkoppeln.
Das hat mehrere Vorteile
- Von testgetriebener Entwicklung (TDD) profitieren, ohne einen Haufen Core Klassen mocken zu müssen.
- Mögliche Wiederverwendung in verschiedenen Anwendungen (z.B. auch Magento 1 und Magento 2)
- Separate “bounded contexts” helfen dabei, Teile der Domain isoliert und ohne Ablenkung zu betrachten.
Sogar in chirurgischen Modifikationen, mit denen wir es oft in Magento-Projekten zu tun haben, ist es den Aufwand wert, die eigentliche Logik zu identifizieren und sie von den Magento-Klassen zu extrahieren.
Vollständiger Beitrag auf integer-net.com → (Englisch)