PHP: Anleitungen und Praxiswissen | Seite 12 | mironsoft Blog
PHP
-
09.09.2025
DateTime-Objekte lassen sich nachträglich verändern, und genau das erzeugt in größeren Codebasen schwer auffindbare Bugs. DateTimeImmutable löst dieses Problem strukturell, indem jede Methode eine neue Instanz statt einer Änderung am bestehenden Objekt zurückgibt. Dieser Artikel zeigt an echtem PHP-8.4-Code, wie DateTimeImmutable, DateTimeZone und DateInterval zusammenspielen und wie sich bestehender DateTime-Code migrieren lässt.
-
08.09.2025
PHP 8.4 bündelt eine ungewöhnlich hohe Zahl an Sprachfeatures in einem einzigen Release: von Property Hooks über vier neue Array-Funktionen bis zur überarbeiteten DOM-API. Dieser Überblick ordnet jedes der neuen PHP 8.4 Features ein, zeigt echten Code und markiert, was beim Upgrade auf PHP 8.4 tatsächlich brechen kann.
-
02.09.2025
PHP hat, anders als Elixir oder das vorgeschlagene JavaScript-Feature, keinen nativen Pipe Operator. Mit einer einzigen kleinen pipe()-Funktion lässt sich der gleiche lesbare Datenfluss trotzdem in PHP 8.4 nachbauen, von links nach rechts statt tief verschachtelter Funktionsaufrufe.
-
01.09.2025
Handgeschriebene PHPDoc-Bloecke veralten fast garantiert, sobald sich eine Signatur aendert. PhpStorm kann Docblocks aus dem tatsaechlichen Code inferieren, veraltete Kommentare markieren und so die Grundlage schaffen, auf der PHPStan verlaesslich analysieren kann.
-
31.08.2025
Wer jedes neue Modul von Hand mit registration.php, module.xml und der ersten Klasse startet, verliert Zeit und produziert inkonsistente Strukturen. Ein guter Boilerplate-Generator erzeugt in Sekunden ein Skelett, das Teamkonventionen und Magento-Best-Practices von Anfang an einhält.
-
31.08.2025
Distroless Images enthalten weder Shell noch Paketmanager noch überflüssige Systembibliotheken und reduzieren dadurch die Angriffsfläche eines PHP-Containers drastisch. Mit Static-PHP-CLI oder FrankenPHP als Basis lässt sich eine komplette PHP-Laufzeit in ein Distroless-Image kompilieren, ohne die klassische PHP-FPM-Distribution zu benötigen.
-
30.08.2025
Dass fopen, file_get_contents und file_put_contents nicht nur mit lokalen Pfaden, sondern auch mit Präfixen wie http:// oder php:// umgehen können, liegt an einem einzigen Mechanismus: der Stream-Wrapper-Registry. Wer versteht, wie stream_wrapper_register funktioniert und welche Methoden eine Wrapper-Klasse implementieren muss, kann eigene Protokolle registrieren, sei es für einen Cloud-Speicher oder ein In-Memory-Dateisystem, das Dateizugriff in Unit-Tests ohne echte Festplatte testbar macht.
-
30.08.2025
Ohne durchdachte API-Versionierung wird jeder Breaking Change zum Krisenmeeting mit externen Integratoren. In PHP stehen drei etablierte Ansätze zur Auswahl: Versionsnummer in der URI, ein eigener Versions-Header oder Versionierung über den Accept-Header per Content-Negotiation. Welche API-Versionierung passt, hängt von Kundenstruktur, Release-Rhythmus und der Zahl parallel unterstützter Versionen ab.
-
29.08.2025
Wer eine Bibliothek oder ein Tool fuer mehrere PHP- oder Node-Versionen pflegt, kommt an Testmatrizen kaum vorbei. Dieser Artikel zeigt, wie parallel: matrix: in GitLab CI aus einer Job-Definition automatisch mehrere parallele Testlaeufe erzeugt und wie sich Laufzeitkosten und Testabdeckung sinnvoll ausbalancieren lassen.
-
27.08.2025
Wer unserialize auf nicht vertrauenswürdige Eingaben wie Cookies, Sitzungsdaten oder API Payloads anwendet, öffnet die Tür für PHP Object Injection und gefährliche Gadgetketten, die über magische Methoden wie wakeup und destruct beliebigen Code ausführen können. Dieser Artikel erklärt die Mechanik, zeigt sichere Alternativen wie json_decode und beschreibt bewährte Deserialisierungsmuster für produktive PHP und Magento Anwendungen.