Skip to content

Datenmigration in PHP: Praktische Patterns & Tools

Ein PHP-Elefant, Symbole für Quelltext und Datenbanken und ein PHP-Array mit den Werten 'a', 'b' und 'c'

Ende Juni habe ich online am Laravel Meetup Germany teilgenommen. Es gab zwei Talks, der erste stellte Inertia vor. Inertia ist ein Framework, das es vereinfacht, serverseitige (Laravel-)Apps mit clientseitigen SPAs zu verbinden.

Den zweiten Vortrag hielt Phillip Kalusek über "Data Migrations - Strategies, Tips & Tricks" - nicht zu verwechseln mit Datenbank-Schema-Migrationen - in Laravel (Video auf YouTube. Phillip gibt eine Menge sehr sinnvoller Praxis-Tipps zum Aufsetzen von Import-Workflows und beleuchtet Vor- und Nachteile verschiedener Ansätze. Dieser Vortrag hat mich letztendlich dazu inspiriert, diesen Artikel zu schreiben.

"Datenmigration in PHP: Praktische Patterns & Tools" vollständig lesen

PHP Developer Days 2018 in Dresden

The PHPDD18 logo on a screen

At the end of September I travelled to Dresden for the PHP Developer Days 2018. The conference, organized by the Dresden PHP User Group, took place for the fourth time, but for the first time on two days: a workshop day and a conference day. On the day of the conference I was at the International Congress Center, but had already arrived the evening before to stroll through the Neustadt district of Dresden.

Dresden

The river Elbe

I had visited the Saxon state capital only once a few years ago and touched the old town and the new town a little bit. This time I was only in the Neustadt, but a little longer. I ate delicious Czech "Knödel" with goulash and enjoyed some delicious beers in the Hopfenkult craft beer store and in the Zapfanstalt before returning to the hotel in the evening.

"PHP Developer Days 2018 in Dresden" vollständig lesen

FrOSCon 2018

Wieder einmal FrOSCon (die 13te), wieder einmal war es sehr schön. Diesmal war ich sogar als Speaker vor Ort, denn ich durfte am Samstag meinen Talk Learning blockchain basics with PHP im Rahmen des PHP-Tracks halten.

Hochschulgebäude Sankt Augustin mit FrOSCon-Banner

Ich habe wieder jede Menge nette Menschen getroffen, während der Konferenz und abends beim Social Event. Danke, dass ihr alle da wart! Außerdem habe ich einige Talks gesehen, über die ich hier noch ein paar Worte schreiben möchte.

"FrOSCon 2018" vollständig lesen

FrOSCon 2017

Karen Sandler hält ihre Keynote im großen Hörsaal HS1 auf der FrOSCon
Karen Sandler bei ihrer Keynote "Cyborgs Unite!"

Auch in diesem Jahr bin ich am Samstag wieder früh aufgestanden, habe mich ins Auto gesetzt, den Unbillen der A3 zwischen Wiesbaden und Siegburg getrotzt, und habe schließlich an der diesjährigen FrOSCon teilgenommen.

In all den Jahren seit meiner ersten FrOSCon 2010 habe ich viele Menschen aus der Open Source- und insbesondere PHP-Community kennengelernt, die ich IRL oft nur einmal im Jahr treffe: eben auf der FrOSCon. Das ist immer wieder schön, und auch diesmal waren viele alte und ein paar neue Bekannte vor Ort. Manchmal reicht es nur kurz zum "Hallo"-Sagen zwischen zwei Talks, manchmal bleibt etwas mehr Zeit, um sich zu unterhalten. In diesem Jahr habe ich es ganz gut getroffen und ein paar nette Begegnungen gehabt.

"FrOSCon 2017" vollständig lesen

Snapshot-Testing für PHP-gerenderte Views

Vor kurzem habe ich den Artikel What Is Snapshot Testing, and Is It Viable in PHP? von Christopher Pitt gelesen. Von Snapshot Testing hatte ich bis dahin noch nie gehört. Unter anderem fand ich interessant, wie er das Rendering von Templates testet.

It’s clear what the template should produce, given repeatable initial information. We could even mock the initial data, and assert the output.

Er nimmt einen kleinen HTML-Schnipsel, in den einige PHP-Variablen eingesetzt werden, befüllt diese einmal mit definierten Werten, und lässt einen Snapshot davon erstellen. Beim nächsten Testlauf lässt sich der Output mit diesem Snapshot vergleichen. Haben sich der HTML-Code oder die Werte aus welchen Gründen auch immer geändert, schlägt der Test fehl.

Mit spatie/phpunit-snapshot-assertions gibt es eine Bibliothek, die Snapshot-Testing mit PHPUnit bzw. Codeception möglich macht. Da ich gerade einige Codeception-Tests für ein älteres Zend Framework 1-Projekt geschrieben habe, das ich teilweise refactoren wollte, kam mir die Lib gerade recht.

"Snapshot-Testing für PHP-gerenderte Views" vollständig lesen