PHP: Anleitungen und Praxiswissen | Seite 10 | mironsoft Blog
PHP
-
30.10.2025
Nicht jede Codezeile verdient eine eigene Datei im Projekt. PhpStorms Scratch Files erlauben schnelle Experimente mit voller Syntax-Hervorhebung und Sprachunterstützung, komplett losgelöst vom aktuellen Projekt, während Scratch Buffers für noch kürzere, unbenannte Zwischenablagen dienen. Wer beide gezielt einsetzt, hält das eigentliche Projekt sauber.
-
29.10.2025
Sobald ein System mehrere zueinander passende Objekte austauschbar erzeugen muss, etwa Zahlungsanbieter mit passendem Client, Validator und Logger, reicht eine einfache Factory-Methode nicht mehr aus. Das Abstract Factory Pattern kapselt genau diese Erzeugung ganzer Produktfamilien hinter einer gemeinsamen, typsicheren Schnittstelle.
-
20.10.2025
Reine Union Types beschreiben ein Entweder-Oder, reine Intersection Types ein Sowohl-als-auch, aber manche Signaturen brauchen beides gleichzeitig. Disjunctive Normal Form Types erlauben seit PHP 8.2 genau diese Kombination mit einer klaren, aber strikt reglementierten Klammersyntax.
-
19.10.2025
Wer denselben Hilfscode in mehreren Projekten kopiert, verliert früher oder später den Überblick, welche Version wo läuft. Ein eigenes Composer-Paket löst dieses Problem: eine composer.json, ein PSR-4-Namespace, eine Versionsnummer pro Git-Tag und eine einzige Quelle der Wahrheit. Dieser Artikel begleitet den kompletten Weg von der ersten Verzeichnisstruktur über Git-Tags bis zur Registrierung auf Packagist, mit echtem, nachvollziehbarem PHP-8.4-Code.
-
18.10.2025
Eine klare Versionierungsstrategie entscheidet darueber, ob ein internes Symfony Bundle vertrauensvoll per composer update aktualisiert werden kann oder bei jedem Update fuer Ueberraschungen sorgt. Dieser Artikel zeigt, wie Semantic Versioning konsequent angewendet wird, wie Breaking Changes erkannt und wie Deprecation-Pfade fuer sanfte Migrationen gestaltet werden.
-
18.10.2025
Ein PHP-Attribut ist nur Metadaten, solange niemand es ausliest. Erst ReflectionAttribute macht Attribute zur Laufzeit nutzbar, indem es Argumente extrahiert, echte Instanzen erzeugt und nach Typ filtert. Wer versteht, wie ReflectionAttribute mit getArguments(), newInstance() und Repeatable Attributes umgeht, kann Validierungs-, Routing- und Serialisierungssysteme bauen, die komplett ohne externe Konfigurationsdateien auskommen.
-
15.10.2025
Bis PHP 8.0 musste jeder Default-Wert eine konstante Expression sein, eine neue Objektinstanz als Default war schlicht nicht erlaubt. Seit PHP 8.1 darf new direkt in Initializern stehen, in Parametern, Attribut-Argumenten und Property-Deklarationen, und macht damit einen ganzen Katalog von Umwegen überflüssig.
-
13.10.2025
PSR Standards sind der Grund, warum ein beliebiger Logger, ein beliebiger Cache Adapter und ein beliebiger HTTP Client in praktisch jedem modernen PHP Projekt austauschbar sind, ohne dass Anwendungscode angepasst werden muss. Wer die wichtigsten PSR Standards von Logging über Caching bis Event Dispatching kennt, wählt Bibliotheken gezielter aus und vermeidet unnötige Kopplung an einzelne Hersteller.
-
12.10.2025
Wer Rechnungen aus einer PHP-Anwendung ohne Node.js-Abhängigkeit als PDF erzeugen will, landet fast immer bei Dompdf oder wkhtmltopdf. Beide Bibliotheken unterstützen nur einen Teil der CSS-Funktionen, die eine Tailwind-Vorlage im Browser nutzt, weshalb Rechnungslayouts bewusst auf Tabellen statt Flexbox aufgebaut werden müssen.
-
10.10.2025
Langsame Kataloge entstehen fast nie durch zu wenig Hardware, sondern durch Queries ohne passenden Index, unnötig breite SELECT-Statements und fehlendes Caching. Dieser Artikel zeigt, wie man EXPLAIN-Pläne liest, fehlende Indizes diagnostiziert, Connection-Overhead reduziert und MySQL/MariaDB gezielt für katalogschwere PHP-Anwendungen konfiguriert.