PHP: Anleitungen und Praxiswissen | Seite 8 | mironsoft Blog
PHP
-
27.11.2025
Swoole Coroutines erlauben es, in PHP tausende gleichzeitige Aufgaben effizient zu bearbeiten, ohne Threads oder zusätzliche Prozesse zu starten. Wer versteht, wie der Coroutine-Scheduler kooperativ arbeitet und wie Channels und WaitGroup Ergebnisse synchronisieren, kann mit Swoole Coroutines echte Parallelität in PHP nutzen, ohne die klassischen Fallstricke von Threading zu erben.
-
27.11.2025
Die meisten PHP-Entwickler kennen ob_start nur als Notlösung gegen die Fehlermeldung 'headers already sent', dabei ist der Ausgabepuffer ein vollwertiger Mechanismus mit eigenem Stack, eigenen Callback-Phasen und eigenen Fallstricken. Wer versteht, wie PHP intern zwischen Skript-Output und tatsächlicher SAPI-Ausgabe eine Pufferschicht einzieht, kann Template-Engines schreiben, Kompression sauber einbinden und vermeidet die klassischen Speicherlecks in langlaufenden CLI-Workern.
-
26.11.2025
Maybe und Either machen einen Fehlerzustand zum Bestandteil des Rückgabetyps, statt ihn implizit über null oder eine geworfene Exception zu verstecken. In PHP 8.4 lassen sich beide Typen mit readonly-Klassen und Enums vollständig ohne externe Bibliothek nachbauen.
-
23.11.2025
Klassenkonstanten und magische Strings sind seit PHP 8.1 kein notwendiges Übel mehr. PHP Enums bringen echte Typsicherheit für endliche Wertemengen: Pure Enums für rein interne Zustände, Backed Enums für Persistenz und API-Kompatibilität, dazu Methoden, Interfaces und sichere Konvertierung mit from() und tryFrom().
-
23.11.2025
Ein Datum als String zu übertragen sieht harmlos aus, bis zwei Clients unterschiedliche Formate erwarten und das Backend Validierung doppelt implementieren muss. Custom Scalars verlagern Format und Validierung in einen einzigen, wiederverwendbaren Typ im Schema, mit klaren Regeln für Serialisierung, Eingabe-Parsing und Fehlerfälle.
-
22.11.2025
Eine abstrakte Klasse und ein Interface lösen auf den ersten Blick ein ähnliches Problem, nämlich einen Vertrag festzulegen, dem konkrete Klassen folgen müssen. Der entscheidende Unterschied liegt darin, was jede der beiden Konstruktionen tatsächlich mitbringt: Ein Interface ist ein reiner Vertrag ohne jede Implementierung, eine abstrakte Klasse dagegen kann Konstruktoren, geteilten Zustand und konkrete Methoden enthalten, die alle Unterklassen automatisch erben. Dieser Beitrag zeigt an einem durchgehenden Report-Generator-Beispiel, wann welches Werkzeug die richtige Wahl ist, warum die Single-Inheritance-Beschränkung von PHP diese Entscheidung entscheidend prägt und wie beide Konzepte in einer einzigen Klassenhierarchie sauber zusammenspielen.
-
20.11.2025
Wer einen DI-Container nur aus der Dokumentation eines Frameworks kennt, versteht selten, warum er so entworfen ist, wie er entworfen ist. In diesem Artikel bauen wir einen minimalen, PSR-11-kompatiblen DI-Container von Grund auf in reinem PHP 8.4: mit Reflection-basiertem Autowiring, rekursiver Abhängigkeitsauflösung, Erkennung von Zirkularität und klar definierten Bindings zwischen Interface und Implementierung. Am Ende steht kein Produktionscode, sondern ein Werkzeug zum Verstehen, das zeigt, was PHP-DI, Symfony DependencyInjection und der Laravel Container tatsächlich unter der Haube leisten.
-
20.11.2025
Jede API-Integration, jeder Webhook und jeder Payment-Gateway-Aufruf steht und fällt mit der Wahl des richtigen PHP HTTP-Client. Dieser Artikel vergleicht natives cURL, Guzzle und Symfony HttpClient entlang von Middleware, Async-Support, PSR-18-Kompatibilität und Testbarkeit, mit echten Codebeispielen für jede Lösung.
-
20.11.2025
Eine Zuweisung wie $b = $a bei einem großen PHP-Array wirkt auf den ersten Blick wie eine teure Kopieroperation, kostet intern aber zunächst nur das Erhöhen eines Referenzzählers. Copy-on-Write verschiebt die eigentliche Kopie auf den Moment, in dem eine der beiden Variablen tatsächlich verändert wird, und genau dieser Mechanismus entscheidet über Speicherverbrauch und Performance bei jeder Array-Übergabe in PHP.
-
18.11.2025
Higher Order Functions behandeln Funktionen wie jeden anderen Wert: sie werden übergeben, zurückgegeben und zur Laufzeit zusammengesetzt. In PHP 8.4 lassen sich damit Schleifen, Bedingungen und Boilerplate durch klar benannte, wiederverwendbare Bausteine ersetzen, ohne ein zusätzliches Framework zu benötigen.