PHP: Anleitungen und Praxiswissen | Seite 13 | mironsoft Blog
PHP
-
27.08.2025
Wer eigene PHP-Anwendungen ohne Symfony oder Laravel betreibt, muss CSRF-Schutz selbst bauen. Mit random_bytes für die Token-Generierung, hash_equals für den zeitkonstanten Vergleich und einer sauberen Session-Bindung lässt sich ein robuster CSRF-Schutz in wenigen Zeilen PHP umsetzen, ganz ohne fremde Abhängigkeit.
-
26.08.2025
Bevor man ReactPHP oder Swoole produktiv einsetzt, lohnt sich ein Blick auf das, was darunter tatsächlich passiert. Non-Blocking I/O in PHP basiert auf denselben Betriebssystem-Primitiven wie in jeder anderen Sprache: Sockets, die im Non-Blocking-Modus laufen, und stream_select, das signalisiert, welche Sockets bereit sind. Wer diese Grundlagen versteht, durchschaut jedes Async-Framework auf Anhieb.
-
26.08.2025
Der ReactPHP Event Loop ist das Herzstück jeder asynchronen PHP Anwendung mit React: ein einzelner Thread, der Timer verwaltet, Dateideskriptoren überwacht und Callbacks in einer klaren Reihenfolge ausführt. Wer den Tick Zyklus, die Timer Warteschlange und das Zusammenspiel mit Streams und Promises versteht, schreibt Code, der wirklich nicht blockiert, statt nur so auszusehen.
-
24.08.2025
Viele PHP-APIs nennen sich REST, sind aber in Wahrheit RPC-Aufrufe mit HTTP-Verpackung: ein POST-Endpunkt für jede Aktion, immer Statuscode 200, egal was passiert. Echtes RESTful API Design in PHP verlangt Ressourcen statt Aktionen, korrekt eingesetzte HTTP-Verben, durchdachte Statuscodes und Idempotenz, wo sie erwartet wird, und das lässt sich ohne ein einziges Framework sauber umsetzen.
-
23.08.2025
PHP wurde für ein Modell entworfen, in dem jede Anfrage einen neuen Prozess oder zumindest einen frischen Ausführungskontext startet, das passt nicht zu WebSockets, die eine dauerhaft offene Verbindung erwarten. Ratchet löst dieses Problem über eine Event-Loop auf Basis von ReactPHP. Wir bauen einen Echtzeit-Benachrichtigungsserver und zeigen konkret, wo die Skalierungsgrenzen eines PHP-WebSocket-Servers in Produktion liegen.
-
19.08.2025
Wer Funktionen und Konstruktoren mit vielen optionalen Parametern aufruft, kennt lange Listen aus true, false und null, deren Bedeutung sich nur durch einen Blick in die Signatur erschließt. Named Arguments lösen dieses Problem, indem der Parametername direkt beim Aufruf sichtbar wird, die Reihenfolge keine Rolle mehr spielt und ungenutzte Defaults nicht künstlich mitgeschrieben werden müssen.
-
17.08.2025
Testbarkeit entsteht nicht beim Schreiben der Tests, sondern beim Entwurf der Klassen selbst. Wer Abhängigkeiten injiziert, Seiteneffekte isoliert und auf statische Aufrufe verzichtet, baut Code, der sich ohne Umwege testen lässt, ganz gleich welches Test-Framework am Ende zum Einsatz kommt. Dieser Artikel zeigt die Entwurfsprinzipien hinter testbarem PHP-Code jenseits von Assertions und Testrunnern.
-
14.08.2025
Wer Enums nur als typsichere Konstanten-Liste nutzt, lässt die eigentliche Stärke von PHP-Enums liegen: Enums mit Interfaces implementieren echtes objektorientiertes Verhalten pro Case, ersetzen verstreute match-Blöcke im Aufrufercode durch eine einzige Methode im Enum selbst und machen neue Fälle über den Compiler statt über Grep-Suchen im Projekt sichtbar.
-
11.08.2025
Ein Deployment, das auf dem Entwickler Rechner funktioniert, aber in Produktion mit einer anderen Paketversion fehlschlägt, ist meistens auf eine fehlende oder falsch behandelte composer.lock Datei zurückzuführen. Wer versteht, wie Composer Hashes bildet, wie platform Config die Auflösung beeinflusst und wie Merge Konflikte in der Lock Datei entstehen, baut PHP Anwendungen, die in jeder Umgebung exakt dieselben Paketversionen installieren.
-
10.08.2025
PHPUnit 10 hat den jahrelang gewachsenen TestListener durch eine sauber typisierte Extension API ersetzt. Wer eigenes Logging, Slack-Benachrichtigungen bei Fehlschlägen oder projektspezifische Regeln in die Testsuite einbauen will, findet hier den Umstieg mit lauffähigen Beispielen.