PHP: Anleitungen und Praxiswissen | Seite 14 | mironsoft Blog
PHP
-
09.08.2025
Wer PHP-Code automatisiert umbauen, prüfen oder generieren will, kommt an der AST-Manipulation nicht vorbei. Die Bibliothek nikic/php-parser verwandelt Quelltext in einen durchsuchbaren Node-Baum, den eigene NodeVisitor-Klassen gezielt lesen und verändern können, bevor der Code als sauberer PHP-Quelltext wieder ausgegeben wird.
-
08.08.2025
Ein Upload-Formular ist eine der direktesten Angriffsflächen einer PHP-Anwendung, weil ein Angreifer hier eigenen Inhalt kontrolliert auf den Server bringt. Wer sich allein auf die Dateiendung oder den vom Client gesendeten Content-Type verlässt, öffnet die Tür für Remote Code Execution, Path Traversal und eingeschleuste Skriptdateien, die als harmlose Bilder getarnt sind.
-
06.08.2025
Das Async/Await Pattern erlaubt es, asynchronen PHP Code so zu schreiben, dass er wie gewöhnlicher, sequenzieller Code aussieht, obwohl er unter der Haube nicht blockiert. Amp baut dieses Pattern auf PHP Fibers auf und ersetzt verschachtelte Callback Ketten durch einfache async und await Aufrufe, ohne die Vorteile echter Nebenläufigkeit zu opfern.
-
03.08.2025
Die Reflection API macht PHP-Klassen, Methoden, Properties und Parameter zu untersuchbaren Objekten zur Laufzeit. Wer verstehen will, wie Dependency Injection Container, ORMs und Test Frameworks intern arbeiten, kommt an ReflectionClass, ReflectionMethod und ReflectionProperty nicht vorbei, und wer sie richtig einsetzt, kann Frameworks bauen, die sich an beliebige, zur Entwicklungszeit unbekannte Klassen anpassen.
-
29.07.2025
Eine Suchfunktion, die Produkte, Kategorien und Seiten in einer Liste zurückgibt, sprengt jeden einzelnen Objekttyp. Union Types und Interfaces geben GraphQL die Werkzeuge, um solche heterogenen Ergebnisse ohne Kompromisse bei Typsicherheit oder Introspection zu modellieren, mit klaren Regeln, wann welches Werkzeug passt.
-
26.07.2025
Sobald ein internes Symfony Bundle in mehr als einem Repository gebraucht wird, stellt sich die Frage nach dem richtigen Verteilweg. Dieser Artikel vergleicht Private Packagist, ein selbst gehostetes Satis und Monorepo-Strategien, inklusive Composer-Konfiguration und CI-Absicherung, damit Bundles zuverlaessig und versioniert in mehreren Projekten ankommen.
-
21.07.2025
Composer ist selbst über sein eigenes Plugin System erweiterbar, dieselbe Architektur, mit der Tools wie Symplify MonorepoBuilder oder Magento Komponenten Installer funktionieren. Wer ein eigenes Composer Plugin entwickelt, kann auf Lifecycle Events reagieren, eigene Console Commands registrieren und sogar eigene Paketinstallationslogik für benutzerdefinierte Paket Typen implementieren.
-
21.07.2025
Ein PHP-Objekt ohne eine einzige Property belegt trotzdem mehrere Dutzend Bytes im Speicher, allein durch den internen zend_object-Header. Wer bei tausenden Objekten pro Request unerwartet hohen Speicherverbrauch sieht, findet die Ursache meist im Zusammenspiel aus Objekt-Header, Property-Tabelle und der Größe typisierter Properties, nicht im eigentlichen Nutzdatenanteil.
-
10.07.2025
Lighthouse bindet GraphQL-Schemas direkt an Eloquent-Modelle, ohne dass für jedes Feld ein eigener Resolver geschrieben werden muss. Statt PHP-Klassen zu bauen, beschreiben SDL-Direktiven wie @hasMany, @paginate und @guard die komplette Anbindung an Datenbank, Beziehungen und Middleware. Wer bereits Laravel-Konventionen kennt, findet sich in Lighthouse schnell zurecht.
-
10.07.2025
Eine Content Security Policy reduziert das Risiko von Cross-Site-Scripting drastisch, wird aber in vielen PHP-Anwendungen entweder gar nicht oder als starre Kopie aus einem Tutorial eingesetzt. Wer die Policy stattdessen direkt aus PHP generiert, mit Nonces pro Request und einem kontrollierten Rollout über den Report-Only-Modus, bekommt einen Schutzmechanismus, der zur eigenen Anwendung passt statt sie zu blockieren.