Letzte Woche habe ich einen Podcast über golang und moderne Kommandozeilen Applikationen von Charm gehört. Falls ihr das noch nicht gesehen habt, holt dies nach. Die Kommandozeile kann sehr viel beeindruckender sein als wir bisher gewohnt sind. Das Kommandozeilen so aussehen wie vor 30 Jahren liegt an diversen Dingen. Im Podcast wurde der Terminal Emulator Kitty sehr gelobt. Da der Terminal Emulator zudem noch plattformunabhängig ist, musste ich diesen einfach ausprobieren.
Privates Blog von Christian Münch
Einfacher GraphQL Server in PHP
Im folgende Blog-Post möchte ich zeigen, wie leicht man mit PHP einen einfachen GraphQL Server schreiben kann. Wir nutzen dafür eine bekannte PHP Bibliothek und ddev um eine PHP Umgebung im aktuellen PHP 8.1 aufzusetzen. Den gezeigte Code aus dem Blog-Post habe ich bereits auf Github bereitgestellt (Link in der Box am Ende).
Das Projekt legen wir über einfache Shell Befehle an.
mkdir php-graphql cd php-graphql ddev config --omit-containers="db,dba" --php-version="8.1" ddev composer init Es sollte jetzt ein lokale ddev Projekt über die URL https://php-graphql.
DDEV 1.19
Eine neue DDEV Version erblickt die Welt. Das neue DDEV 1.19 hat einige Verbesserungen zu bieten-
Netzwerke und und und … Unter der Haube wurde einiges an der Docker Netzwerk Verwaltung geschaubt. Jedes ddev Projekt legt nun ein eigenes Docker Netzwerk an. Vorher waren alle ddev Projekte in einem globalen ddev Netzwerk. Die Trennung ist super sinnvolle da es damit zu weniger Konflikten kommt. Die docker-compose YAML Dateien sollten jetzt ohne links: Einträge erstellt werden.
Automatisieren mit Stream Deck und D-Bus unter Linux
Da ich immer mehr Remote-Meetings habe in denen ich präsentieren muss, habe ich schon länger mit dem Gedanken gespielt hier ein wenig mehr zu optimieren und zu automatisieren. Ideen sind u.a. einige Einstellungen in der Software OBS schneller vorzunehmen oder in Zoom automatisch ein paar Einstellungen vorzunehmen. Auch das automatische arrangieren von Fenstern ist immer ein Thema, wenn man etwas präsentiert.
Eine nette Hardware die ich immer im Auge hatte, war ein Stream Deck.
Xliff zu CSV konvertieren
Heute musste ich eine XLIFF Datei mit Übersetzungen in eine CSV Datei konvertieren. Da die Datei recht Umfangreich war wollte ich das nicht manuell machen und habe ein entsprechendes Programm gesucht, was die Aufgabe übernimmt. Die gefundenen Programme waren alle recht alt und haben leider nicht mehr funktioniert.
Die Datei sah ungefähr so aus:
<?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en-US" datatype="plaintext" original=""> <body> <trans-unit id="defaultTitle"> <source>defaultTitle</source> <target>The Example App</target> </trans-unit> <trans-unit id="whatIsThisApp"> <source>whatIsThisApp</source> <target>Help</target> </trans-unit> <trans-unit id="metaDescription"> <source>metaDescription</source> <target>This is "The Example App", a reference for building your own applications using Contentful.
Magerun Beispiel Modul mit Test Setup
Nachdem wir bei netz98 diese Woche das Test-Framework auf die Version 2.0.2 aktualisiert hatten, ist mir aufgefallen, dass es bisher auch noch kein echtes Beispiel-Modul als Github Projekt gab.
Daher habe ich jetzt den Beispiel-Code einfach in ein Beispiel-Modul gepackt und diesen auf Github veröffentlicht. Das Beispiel-Modul beinhaltet auch ein ddev Setup in dem dann ein Magento Shop installiert wird. Im Beispiel Modul ist folgendes enthalten:
ddev Setup Beispiel Kommando, welches einfach den PHP-Klassennamen von sich selbst ausgibt.
Magerun Test Framework aktualisiert
Diese Woche bekam das n98-magerun2 Test Framework für Module eine Aktualisierung. Das Test Framework ist für Drittmodule gedacht, die Magerun Kommandos bereitstellen.
So wurden die abstrakten Test-Klassen so angepasst, dass diese mit PHPUnit 9 kompatibel sind. Ebenfalls wurden die Beispiele in der README und die Beispiel phpunit.xml aktualisiert.
Bei netz98 haben wir einige Magerun Module. Unter wurde das Tool Migron als n98-magerun2 Modul umgesetzt. Auf meiner Sicht ist es wichtig, dass auch wichtige Magerun Kommandos getestet werden.
DDEV Magento Demo Projekt
Bei der Meet Magento Indien 2022 durfte ich in den Vortrag ddev – Awesome PHP / Magento development environment halten.
Da ich ddev super finde ich es den Einstieg in die Magento Entwicklung stark vereinfacht, habe ich mich entschlossen ein Beispiel-Demo Projekt zu veröffentlichen.
Was muss ich tun? ddev und Docker installieren
Magento Installation-Schlüssel im Magento Account generieren. Siehe hier
Magento Schlüssel in Konfiguration hinterlegen Datei ~/.ddev/global_config.yaml öffnen. Unter web_environment folgendes hinterlegen:
Phar Dateien mit Box erstellen
Nach langer Zeit scheibe ich mal wieder einen Blogpost zum Thema PHP. Es geht um das Tool box, was ich gerade für n98-magerun2 eingebaut habe. Das Tool hilft beim Umgang mit phar Dateien. In erster Linie nutze ich es um die n98-magerun2.phar Datei zu erstellen. Bisher habe ich dafür einen phing Task verwendet. Dieser musste allerdings angepasst werden um mit den etwas größeren (> 6 MB) phar Dateien umgehen zu können.
Mal eben schnell mit ddev Wordpress installieren
Wie vielleicht schon der eine oder andere weiß, nutze ich sehr gerne ddev um schnell eine Entwicklungsumgebung für die Entwicklung von PHP Anwendungen aufzusetzen. Ab und an muss ich mich auch mit Wordpress rumschlagen. Da ist es sehr hilfreich, wenn man sehr schnell ein Wordpress automatisch lokal aufsetzen kann. Da ddev schon selbt Wordpress unterstützt, ist es bis zur vollständigen Automatisierung nicht sehr weit.
Dazu habe ich mir dann einfach folgendes Script erstellt unter dem Namen ddev-create-wordpress.