PHP: Anleitungen und Praxiswissen | Seite 2 | mironsoft Blog
PHP
-
05.04.2026
Ohne Rate Limiting genügt ein einziger fehlerhafter Client-Loop oder ein gezielter Angriff, um eine PHP-API in die Knie zu zwingen. Ein eigenes Rate Limiting lässt sich mit Redis und wenigen Zeilen PHP umsetzen, ganz ohne Drittanbieter-Gateway, und die Wahl zwischen Fixed Window, Sliding Window und Token Bucket entscheidet darüber, wie fair und wie burst-tolerant der Schutz tatsächlich ausfällt.
-
05.04.2026
Die meisten Erklärungen zu SOLID-Prinzipien arbeiten mit Formen, Enten oder Tieren und lassen offen, wie das in echtem Anwendungscode aussieht. Dieser Artikel nimmt stattdessen eine durchgehende Order-Processing-Pipeline in PHP 8.4, an der jedes der fünf Prinzipien ein konkretes, nachvollziehbares Wartbarkeitsproblem löst: eine Order-Klasse, die zu viel macht, Rabattregeln, die zu einer if/else-Kaskade wuchern, ein Payment-Gateway, das seinen eigenen Vertrag bricht, ein zu fettes Repository-Interface und ein Notification-Service, der zu eng an einen konkreten Mailer gekoppelt ist.
-
03.04.2026
Wer bei großen Datenmengen wahllos zwischen array_map, foreach und Generatoren wechselt, riskiert unnötigen Speicherverbrauch und schwer nachvollziehbare Laufzeiten. Dieser Artikel vergleicht die wichtigsten Array-Funktionen in PHP 8.4 mit echten Benchmarks, zeigt, wann Generatoren mit yield den entscheidenden Unterschied machen, und liefert klare Entscheidungsregeln für den Projektalltag.
-
01.04.2026
Doctrine oder Eloquent zu benutzen ist einfach, zu verstehen, warum sie so funktionieren, wie sie funktionieren, ist es nicht. Wer einmal ein eigenes minimales ORM gebaut hat, versteht Hydration, Unit of Work und Identity Map nicht mehr abstrakt, sondern als konkrete Entscheidungen mit klaren Kompromissen.
-
30.03.2026
Ein Sprung von PHP 5.6 direkt auf PHP 8 überspringt vier Major-Versionen mit jeweils eigenen Breaking Changes, entfernten Funktionen und veränderter Fehlerbehandlung. Dieser Artikel zeigt eine mehrstufige Migrationsstrategie mit Zwischenversionen, Kompatibilitätsschicht und Testnetz, statt eines riskanten Ein-Schritt-Sprungs.
-
24.03.2026
Psalm vs. PHPStan ist selten eine Frage von richtig oder falsch, sondern von Prioritäten: Taint Analysis und aggressives Type Narrowing sprechen für Psalm, ein größeres Plugin-Ökosystem und ausgereifte Generics-Unterstützung sprechen für PHPStan. Dieser Artikel vergleicht beide Tools technisch und liefert einen praktischen Entscheidungsrahmen für Teams.
-
21.03.2026
Ein Speicherleck zeigt sich zuerst als stetig wachsender RES-Wert in top, gefolgt von immer knapperem freiem Arbeitsspeicher und irgendwann einem OOM-Kill mitten am Tag. Wer den betroffenen Dienst einfach neu startet, gewinnt Zeit, aber keine Erkenntnis. Dieser Leitfaden zeigt, wie man mit Bordmitteln wie smaps_rollup, smem und pmap systematisch herausfindet, welcher Prozess Speicher verliert und wo im Code oder in der Konfiguration die Ursache liegt.
-
19.03.2026
Wer mehrere zusammengehörige PHP Pakete pflegt, kennt das Problem: jede kleine Änderung im Kernpaket bedeutet eine neue Version, ein neues Tag, ein composer update im abhängigen Paket, nur um lokal zu testen, ob alles zusammenpasst. Ein PHP Monorepo mit Composer Path Repositories löst genau dieses Problem, ohne die spätere Veröffentlichung auf Packagist zu erschweren.
-
18.03.2026
Wiederkehrende Prüfungen wie if ($logger !== null) verteilen sich schnell über eine ganze Codebasis und verstecken die eigentliche Businesslogik hinter defensiver Programmierung. Das Null Object Pattern ersetzt fehlende Objekte durch ein neutrales Objekt mit demselben Interface, das sich einfach nichts tuend verhält, statt eine Fallunterscheidung zu erzwingen.
-
16.03.2026
Ein Dependency Update Checker sammelt regelmäßig den Stand veralteter Pakete über mehrere Repositories hinweg und macht Sicherheitslücken sichtbar, bevor sie in einem Audit unangenehm auffallen. Dieser Artikel zeigt, wie ein solcher Dependency Update Checker composer outdated und npm outdated per jq auswertet, Versionssprünge klassifiziert und die Ergebnisse automatisch als Report verschickt.