PHP: Anleitungen und Praxiswissen | Seite 7 | mironsoft Blog
PHP
-
19.12.2025
Unveränderliche Objekte verändern grundlegend, wie zuverlässig sich PHP-Code verhält: Ein einmal konstruiertes Value Object kann später von keiner Stelle im Programm heimlich verändert werden, weil es schlicht keine Setter mehr gibt. Statt bestehende Instanzen zu mutieren, erzeugen with-Methoden bei jeder Änderung eine neue, vollständig initialisierte Kopie mit dem geänderten Wert. Dieser Beitrag zeigt an einem durchgehenden Money-Beispiel, wie readonly-Properties, with-Methoden und Named Constructors zusammenspielen, und warum Klonen mit anschließender Mutation bei readonly-Properties in PHP technisch gar nicht funktioniert.
-
19.12.2025
Wenn dieselbe Berechtigungsprüfung in zwanzig Resolvern kopiert wird, ist das ein Zeichen, dass Verhalten in die Schema-Deklaration gehört statt in wiederholten Code. GraphQL Directives machen genau das möglich: Ein @auth-Tag am Feld ersetzt den Boilerplate-Check, eine @formatDate-Direktive steuert Ausgabeformate ohne Resolver-Änderung.
-
13.12.2025
Currying zerlegt eine mehrstellige Funktion in eine Kette einstelliger Funktionen, partielle Anwendung friert einzelne Argumente vorab ein. Beide Techniken lassen sich in PHP 8.4 ohne externe Bibliothek mit Closures nachbauen und reduzieren wiederkehrende Parameter auf ein Minimum.
-
12.12.2025
PHPUnit führt vier verschiedene Lifecycle-Hooks in einer festen Reihenfolge aus, zwei davon einmal pro Klasse, zwei davon vor und nach jedem einzelnen Test. Wer diese Reihenfolge nicht präzise kennt, baut leicht Tests, die scheinbar isoliert wirken, tatsächlich aber Zustand über static-Eigenschaften miteinander teilen. Dieser Artikel geht die komplette Kette durch, mit den typischen Fehlern und wann static- statt Instanz-Methoden nötig sind.
-
10.12.2025
Ein eigener Query Builder ersetzt fragile String-Konkatenation durch ein Objekt, das SQL-Ausdrücke schrittweise, typsicher und testbar zusammensetzt. Wer versteht, wie ein Query Builder intern funktioniert, kann fertige Lösungen wie Doctrine oder Laravels Eloquent gezielter einsetzen und weiß, wo Eigenbau tatsächlich sinnvoll ist.
-
07.12.2025
Die meisten Anwendungen speichern nur den aktuellen Zustand einer Entität und überschreiben ihn bei jeder Änderung, wodurch jede Information darüber, wie dieser Zustand entstanden ist, für immer verloren geht. Event Sourcing dreht dieses Prinzip um: Gespeichert wird nicht der aktuelle Zustand, sondern die vollständige, unveränderliche Sequenz aller Ereignisse, die zu diesem Zustand geführt haben, aus der sich der aktuelle Zustand jederzeit neu berechnen lässt.
-
06.12.2025
Memoization speichert das Ergebnis einer Funktion beim ersten Aufruf und liefert es bei jedem weiteren Aufruf mit denselben Argumenten sofort aus dem Cache. Weil dieses Verfahren nur bei referenziell transparenten, reinen Funktionen garantiert korrekt ist, verbindet Memoization funktionale Programmierung und Performance-Optimierung in PHP 8.4 direkt miteinander.
-
05.12.2025
Wer mehrere Kundenprojekte auf einem Server betreibt, kommt an unterschiedlichen PHP-Versionen nicht vorbei, weil Magento, WordPress und Legacy-Anwendungen selten dieselbe Version verlangen. Mit versionierten FPM-Paketen, update-alternatives und sauber getrennten Pools pro vhost lassen sich mehrere PHP-Versionen konfliktfrei und produktionssicher parallel betreiben.
-
02.12.2025
Datenbank Migrationen sind versionierte, nachvollziehbare Schema-Änderungen, die jedes Team ohne manuelles ALTER TABLE über SSH-Verbindungen ausführt. Ein selbstgebautes Migrationssystem aus Migrationstabelle, Up- und Down-Methoden sowie einem schlanken CLI-Runner deckt die Kernanforderungen ab, ohne Doctrine Migrations oder Laravel als Abhängigkeit einzuführen.
-
28.11.2025
Pagination entscheidet über Ladezeit und Konsistenz jedes Listen-Endpunkts. Dieser Artikel zeigt, warum klassische Offset-Pagination bei wachsenden Tabellen langsam wird, wie Cursor-basierte Keyset-Pagination in PHP funktioniert und wie opake Cursor-Tokens robust kodiert werden.