PHP: Anleitungen und Praxiswissen | Seite 6 | mironsoft Blog
PHP
-
06.01.2026
Eine falsch vergebene Versionsnummer bricht in Sekunden hunderte fremde Installationen, ohne dass der Maintainer davon zunächst etwas merkt. Semantic Versioning ist die Vereinbarung, auf die sich das gesamte Composer-Ökosystem verlässt: MAJOR für Breaking Changes, MINOR für neue, abwärtskompatible Funktionen, PATCH für Bugfixes. Dieser Artikel erklärt die Regeln im Detail, zeigt Composer-Constraints und automatisierte Versionsermittlung mit echtem PHP-8.4-Code.
-
05.01.2026
PHPUnit hat seit Version 10 einen klaren Kurs eingeschlagen: Die alten @annotation-Docblocks werden schrittweise durch echte PHP-8-Attribute wie #[Test], #[DataProvider] und #[Group] ersetzt. Wer heute noch mit Annotationen arbeitet, verschenkt Typsicherheit, IDE-Unterstützung und eine sauberere Fehlerdiagnose. Dieser Artikel zeigt, warum sich der Umstieg lohnt und wie eine bestehende Testsuite Schritt für Schritt migriert wird.
-
02.01.2026
Eine persistente Datenstruktur bleibt nach jeder Änderung in ihrer alten Version vollständig erhalten und erzeugt eine neue Version, ohne den kompletten Inhalt zu kopieren. In PHP 8.4 lässt sich dieses Prinzip mit unveränderlichen verketteten Listen und Structural Sharing direkt umsetzen, ganz ohne externe Bibliothek.
-
30.12.2025
unserialize() auf nicht vertrauenswürdige Daten anzuwenden, gehört zu den gefährlichsten Mustern in PHP-Anwendungen. Gadget Chains aus harmlos wirkenden Klassen ermöglichen Remote Code Execution allein durch das Wiederherstellen eines Objekts. JSON, allowed_classes und signierte Payloads schließen diese Lücke zuverlässig.
-
30.12.2025
Wer in wachsenden PHP-Projekten weiterhin mit generischen Exceptions oder wahllos vielen Einzelklassen arbeitet, verliert schnell den Überblick zwischen fachlichen und technischen Fehlern. Dieser Artikel zeigt, wie eigene Exception-Hierarchien mit abstrakten Basisklassen, Marker-Interfaces und typisierten Kontextdaten entstehen, die über Domain-, Application- und Infrastructure-Schichten hinweg tragen.
-
28.12.2025
Seit PHP 8.1 lassen sich einzelne Properties als readonly deklarieren, seit PHP 8.2 kann eine komplette Klasse in einem Schritt unveränderlich gemacht werden. Der Unterschied ist mehr als Syntax-Zucker: Eine readonly Klasse trifft eine Design-Entscheidung auf Klassenebene, mit eigenen Regeln für Vererbung, dynamische Properties und Migration bestehender Value Objects.
-
27.12.2025
Die meisten PHP-Entwickler kennen PDO nur von query() und fetch(). Wer PDO fortgeschritten nutzt, kontrolliert Fetch-Modi gezielt, setzt Transaktionsgrenzen bewusst und vermeidet die typischen Performance-Fallen bei Bulk-Operationen, die in Tutorials selten vorkommen, in Produktionscode aber täglich auftreten.
-
27.12.2025
Wer jede Exception pauschal mit catch (\Exception $e) auffängt, verliert die Unterscheidung zwischen Programmierfehlern und erwartbaren Laufzeitproblemen. Dieser Artikel zeigt, wie die eingebaute Throwable-Hierarchie und die SPL-Exceptions von PHP 8.4 ein robustes Error-Handling ermöglichen, inklusive try/catch/finally, Fehlerkonvertierung und sauberem Exception-Logging.
-
24.12.2025
Wer Passwörter mit MD5 oder SHA-1 hasht, öffnet Angreifern nach einem Datenbank-Leak Tür und Tor für Brute-Force und Rainbow-Table-Angriffe. Dieser Artikel erklärt, wie bcrypt und Argon2id funktionieren, wie ihr sie mit PHP's password_hash() korrekt einsetzt und welche Fehler bei Salt, Cost-Faktor und Rehashing in der Praxis am häufigsten passieren.
-
23.12.2025
graphql-php von Webonyx ist die PHP-Referenzimplementierung der GraphQL-Spezifikation und die Grundlage praktisch jeder größeren PHP-GraphQL-Lösung, von Lighthouse bis zu eigenen Standalone-APIs. Wer graphql-php direkt nutzt, muss früh entscheiden: Schema per SDL-Datei definieren oder Typen als PHP-Klassen im Code beschreiben. Diese Entscheidung prägt Wartbarkeit, IDE-Unterstützung und Teamworkflow für die gesamte Projektlaufzeit.