PHP: Anleitungen und Praxiswissen | Seite 9 | mironsoft Blog
PHP
-
16.11.2025
Rohe PHP-CLI-Skripte mit $argv stoßen schnell an Grenzen: keine Validierung, kein Hilfetext, keine Tests. Die Symfony-Console-Komponente lässt sich als eigenständiges Composer-Paket in jedem PHP-Projekt einsetzen und liefert Command-Klassen, Prompts, Fortschrittsanzeigen und Exit-Codes als solides Fundament.
-
14.11.2025
Veraltete Abhängigkeiten zählen laut OWASP zu den häufigsten Einfallstoren in Webanwendungen. Dieser Artikel zeigt, wie Magento-Teams CVE-Datenbanken überwachen, composer.lock gegen unkontrolliertes Driften absichern, Updates mit Dependabot oder Renovate automatisieren und Magentos vierteljährlichen Sicherheitspatch-Zyklus zuverlässig einhalten, ohne die Codebasis zu destabilisieren.
-
13.11.2025
Wer PSR-12 durchsetzen will, ohne jeden Pull Request mit Kommentaren zu Einrückung und Klammernposition zu blockieren, braucht Automatisierung statt guten Willens. PHP_CodeSniffer und PHP-CS-Fixer, kombiniert mit Pre-Commit-Hooks und CI-Pipeline, beenden Formatierungsdiskussionen im Review dauerhaft, auch in gewachsenen Legacy-Projekten.
-
12.11.2025
Funktionale Komposition setzt kleine, einzeln getestete Funktionen zu einer neuen Funktion zusammen, statt Aufrufe tief ineinander zu verschachteln. Mit einer eigenen compose()-Funktion lässt sich dieses Muster in PHP 8.4 typsicher und ohne zusätzliche Abhängigkeit umsetzen.
-
10.11.2025
Ein message-Text allein reicht keinem Client, um eine Fehlermeldung zu übersetzen oder eine Retry-Logik zu steuern. Wer GraphQL Error Codes standardisieren will, braucht einen zentralen Katalog konsistenter extensions.code-Werte, der Domain-Exceptions eindeutig auf stabile, dokumentierte Fehlercodes abbildet.
-
10.11.2025
GraphQL wirkt in Frontend-Tutorials oft wie eine fertige Blackbox, dabei lässt sich ein funktionierender Server in PHP mit vergleichsweise wenig Code selbst bauen. Wir nutzen webonyx/graphql-php als schlanke Basis für Typsystem und Ausführung, definieren Schema und Resolver von Hand und zeigen, wie das berüchtigte N+1-Problem entsteht und ohne eine dedizierte DataLoader-Bibliothek gelöst werden kann.
-
09.11.2025
Hinter jedem require-freien PHP-Projekt steckt ein einfacher, aber oft missverstandener Mechanismus: Composer-Autoloading übersetzt Namespace-Deklarationen aus composer.json über generierte PHP-Dateien und eine Longest-Prefix-Match-Logik in tatsächliche Dateipfade. Dieser Artikel öffnet die Blackbox: von composer dump-autoload über autoload_psr4.php bis zur Methode ClassLoader::loadClass(), Schritt für Schritt und mit echtem, nachvollziehbarem Code für PHP 8.4.
-
09.11.2025
Der @-Operator gilt vielen PHP-Entwicklern als bequemer Weg, um lästige Warnings bei Datei-Operationen oder Netzwerkzugriffen loszuwerden. Tatsächlich handelt es sich um eines der gefährlichsten Werkzeuge der Sprache, denn er unterdrückt nicht nur den erwarteten Fehlerfall, sondern jeden Fehler an dieser Stelle, ohne Protokollierung und ohne Unterscheidung. Dieser Artikel zeigt, was der Operator technisch wirklich tut, an welchen Stellen er zu stillen Bugs führt, und mit welchen konkreten Alternativen sich robuste Fehlerbehandlung erreichen lässt.
-
07.11.2025
Ein Devcontainer verlagert die komplette Entwicklungsumgebung in einen Container, sodass jeder Entwickler exakt dieselbe PHP-Version, dieselben Extensions und dieselben Tools nutzt, unabhängig vom eigenen Rechner. Statt stundenlanger Onboarding-Dokumentation genügt ein Klick auf "Reopen in Container".
-
01.11.2025
Eine Closure trägt ihren Definitionskontext nicht automatisch mit sich, wenn es um Sichtbarkeit geht. Closure::bind und bindTo erlauben es, den $this-Kontext und den Scope für Sichtbarkeitsprüfungen gezielt zu verändern, auch nachträglich. Wir zeigen, wie das im Detail funktioniert und wo sich privater Zugriff aus Closures heraus in der Praxis wirklich lohnt.