PHP: Anleitungen und Praxiswissen | Seite 17 | mironsoft Blog
PHP
-
15.05.2025
Viele Entwickler setzen declare(strict_types=1) an den Anfang jeder Datei und glauben damit, ihr Code sei vollständig gegen die berüchtigten Type-Juggling-Überraschungen von PHP abgesichert. Tatsächlich deckt strict_types nur einen Teil des Problems ab, nämlich Funktionsargumente und Rückgabewerte. Interne Vergleiche mit == bleiben davon vollkommen unberührt und lose typisiert. Dieser Artikel zeigt die Grenzen von strict_types genau auf und beschreibt konkrete Fallstricke, denen erfahrene PHP-Entwickler trotzdem regelmässig begegnen.
-
12.05.2025
Bei Skalaren ist der Unterschied zwischen == und === schon anspruchsvoll genug, bei Objekten kommt eine ganz eigene Dimension hinzu, die viele Entwickler unterschätzen. == vergleicht bei Objekten Klasse und sämtliche Properties rekursiv, während === ausschließlich prüft, ob es sich um dieselbe Instanz im Speicher handelt. PHP kennt dabei keine Magic Method wie __equals, mit der sich dieses Verhalten anpassen liesse. Dieser Artikel erklärt beide Operatoren präzise und zeigt, wie sich eigene, nachvollziehbare Vergleichslogik für Value Objects umsetzen lässt.
-
10.05.2025
Wer OPcache, Redis, Varnish und ein CDN ohne klare Rollenverteilung betreibt, produziert widersprüchliche Ladezeiten und schwer reproduzierbare Fehler durch veraltete Daten. Dieser Artikel zeigt, wie jede Schicht ein eigenes Problem löst, wie Invalidierung über Tags und TTL zuverlässig funktioniert und wie sich Stampedes durch Sperren und vorausschauende Erneuerung vermeiden lassen.
-
08.05.2025
Rector automatisiertes Refactoring ersetzt manuelles Suchen-und-Ersetzen bei PHP-Versionswechseln durch AST-basierte Codeumschreibung: Constructor Property Promotion, readonly-Properties, match-Expressions und der Nullsafe-Operator werden mechanisch und wiederholbar auf eine ganze Codebasis angewendet, inklusive Dry-Run-Vorschau, eigenen Regeln und CI-Integration gegen Regressionen.
-
07.05.2025
Traits gelten meist als reiner Code-Wiederverwendungsmechanismus, doch sie können mehr: Ein Trait darf eine abstrakte Methode deklarieren, die jede Klasse, die den Trait einbindet, zwingend selbst implementieren muss. Das ist kein Ersatz für ein Interface, sondern ein eigenständiges Werkzeug mit eigenen Regeln und eigenen Grenzen. Dieser Artikel zeigt, wie dieser Mechanismus funktioniert, wo er sich von einem Interface unterscheidet, und wann er in der Praxis sinnvoll ist.
-
05.05.2025
Backed Enums lassen sich fast beiläufig in JSON umwandeln, doch sobald Doctrine, PDO oder komplexere API-Antworten ins Spiel kommen, reichen die eingebauten Mechanismen allein nicht mehr aus. Dieser Artikel zeigt, wie Enum-Werte zuverlässig durch JSON-Schnittstellen und relationale Datenbanken wandern, und wo Pure Enums an eine harte Grenze stoßen.
-
03.05.2025
Wer Alpine.js und Livewire ohne klare Trennlinie mischt, produziert unnötige Server-Roundtrips und Zustände, die beim Re-Render verschwinden. Mit entangle, gezieltem Event-Dispatching und einer sauberen Aufgabenteilung zwischen Server-State und Client-State werden hybride Komponenten im TALL Stack vorhersehbar und performant.
-
30.04.2025
Eine übernommene Session gibt einem Angreifer denselben Zugriff wie ein gestohlenes Passwort, oft ohne dass der eigentliche Login-Mechanismus überhaupt kompromittiert werden musste. Solide Session Security in PHP kombiniert ID-Regenerierung nach dem Login, sichere Cookie-Flags und eine serverseitige Bindung an stabile Client-Merkmale, um Fixation und Hijacking gleichermaßen zu verhindern.
-
30.04.2025
Das clone-Schlüsselwort in PHP erzeugt standardmäßig nur eine Shallow Copy, verschachtelte Objekte bleiben geteilt. Mit der Magic Method __clone lässt sich Object Cloning gezielt zur Deep Copy erweitern, inklusive readonly Properties und dem klassischen Prototype Pattern als Erzeugungsstrategie.
-
29.04.2025
Die Wahl des richtigen Authentifizierungsmechanismus entscheidet über Sicherheit und Integrationsaufwand einer PHP-API. Dieser Artikel zeigt, wann API-Keys ausreichen, wie JWT-Signaturen tatsächlich funktionieren und wann sich der zusätzliche Aufwand von OAuth2 wirklich lohnt, mit sicherer Speicherung und vollständigen Codebeispielen.