PHP: Anleitungen und Praxiswissen | Seite 20 | mironsoft Blog
PHP
-
20.03.2025
PHP-Entwickler kennen die meisten Konzepte von TypeScript bereits, nur unter anderen Namen und mit anderen Garantien. Dieser Artikel ordnet Union Types, Interfaces, Immutability, Enums und Generics aus der PHP-Welt ihren TypeScript-Entsprechungen zu, zeigt konkret, wo nominale und strukturelle Typisierung auseinanderlaufen, und vergleicht ein typisches Value Object Zeile für Zeile in beiden Sprachen.
-
18.03.2025
HATEOAS macht eine PHP-API zur echten Zustandsmaschine: statt dass Clients URLs selbst zusammenbauen, liefert jede Antwort die Links mit, die im aktuellen Zustand tatsächlich erlaubt sind. Dieser Artikel zeigt eine praktische HATEOAS-Umsetzung in PHP mit HAL-Format, einem eigenen Link-Builder und konkreten Beispielen aus einem Bestellprozess.
-
17.03.2025
Wer PHP-Worker und Queue-Consumer nur per nohup oder einer Screen-Session am Laufen hält, riskiert stille Ausfälle nach jedem Server-Neustart, Deployment oder Absturz. Eine sauber geschriebene systemd Unit-Datei mit klarer Restart-Policy, dediziertem Service-User und automatischer journald-Integration macht PHP-Hintergrundprozesse robust, beobachtbar und produktionsreif, ohne dass zusätzliche Tools wie Supervisor oder Monit nötig werden.
-
16.03.2025
Fast jedes moderne PHP-Framework verspricht eine PSR-15-kompatible Middleware-Pipeline, doch was intern passiert, bleibt für viele Entwickler eine Blackbox. Wir bauen die Pipeline Schritt für Schritt selbst, ohne Framework, und zeigen am Beispiel von Logging-, Auth- und CORS-Middleware, wie das Onion-Modell technisch funktioniert.
-
14.03.2025
Sobald mehr als ein php-fpm-Prozess läuft, wird die Standard-Session-Speicherung über Dateien im lokalen Dateisystem schnell zum Problem, spätestens beim horizontalen Skalieren über mehrere Server. SessionHandlerInterface bietet genau die sechs Methoden, um Session-Daten stattdessen in Redis, einer Datenbank oder einem beliebigen anderen Speicher abzulegen, komplett ohne Framework. Dieser Artikel zeigt die Implementierung im Detail, inklusive der Locking-Strategie, die parallele Requests derselben Session vor Datenverlust schützt.
-
13.03.2025
Eine sauber konfigurierte .gitattributes-Datei löst Probleme, die viele PHP-Teams für unvermeidbar halten: CRLF-Rauschen zwischen Windows und Linux, aufgeblähte Deployment-Archive, verzerrte GitHub-Sprachstatistik durch Vendor-Code und unlesbare Pull-Request-Diffs bei generierten oder minifizierten Dateien. Dieser Artikel zeigt jede relevante Direktive an echten Beispielen für PHP- und Magento-Projekte, inklusive Zeilenenden, export-ignore, linguist-Attributen und Diff-Treibern für den produktiven Entwickleralltag.
-
09.03.2025
Viele Magento und PHP APIs antworten in 400 bis 800 Millisekunden, obwohl die eigentliche Arbeit in wenigen Millisekunden erledigt werden könnte. Dieser Artikel zeigt anhand einer konkreten Fallstudie, wie sich Antwortzeiten durch systematisches Profiling, Datenbankindizes, Caching, cursorbasierte Pagination und asynchrone Verarbeitung von 500 Millisekunden auf unter 50 Millisekunden senken lassen.
-
09.03.2025
Eine Kette aus mehreren assertEquals-Aufrufen, die einzelne Felder eines Domänenobjekts vergleichen, ist mühsam zu schreiben und liefert bei einem Fehlschlag nur bruchstückhafte Information. Eigene, domänenspezifische Assertions wie assertMoneyEquals oder assertValidOrderState bündeln diese Vergleiche an einer Stelle und liefern Fehlermeldungen, die sofort zeigen, was fachlich falsch war. Dieser Artikel zeigt, wie solche Assertions entstehen und wann sich der Aufwand lohnt.
-
07.03.2025
Ein einzelner Aufruf von htmlspecialchars() wird gerne als vollständiger XSS Schutz missverstanden, dabei hängt sicheres Output Encoding immer vom Ausgabekontext ab: HTML-Body, HTML-Attribut, JavaScript-String und URL erfordern jeweils eigene Escaping-Regeln, die bei Verwechslung genau die Lücke offen lassen, die eigentlich geschlossen werden sollte.
-
05.03.2025
Ein Magento-Projekt mit 40 Drittanbieter-Modulen hat schnell hunderte transitive Abhaengigkeiten. Wer vor einem Composer-Update nicht weiss, welche Pakete sich gegenseitig einschraenken, verliert Stunden mit Trial-and-Error. PhpStorm macht diesen Graphen sichtbar.