Magento Blog: Anleitungen und Praxiswissen | Seite 363 | mironsoft
Magento Blog
-
11.01.2025
In fast jeder Anwendung gibt es Logik, die von der aktuellen Zeit abhängt: Ablaufdaten von Gutscheinen, Fristen für Bestellstornierungen, oder zeitgesteuerte Freischaltungen. Wird diese Zeit über ein direktes new \DateTime() im Code abgefragt, wird jeder Test, der einen bestimmten Zeitpunkt simulieren muss, entweder zu einer fragilen Konstruktion mit echten Sleep-Aufrufen oder schlicht unmöglich zu schreiben. Die Symfony Clock-Component löst dieses Problem, indem sie die aktuelle Zeit als injizierbare Abhängigkeit behandelt, die sich in Tests durch eine deterministische Implementierung ersetzen lässt, ohne eine einzige Millisekunde echter Wartezeit.
-
11.01.2025
API Platform generiert GraphQL-Schemata automatisch aus PHP-Entities – das klingt nach der einfachsten Lösung. In der Praxis zeigen sich aber schnell Grenzen: komplexe Mutations, domänenspezifische Validierung, Performance-Probleme durch N+1 und fehlende Kontrolle über das generierte Schema. Dieser Artikel zeigt, wann API Platform GraphQL ausreicht und wann es erweitert oder ersetzt werden muss.
-
11.01.2025
Jahrelang haben PHP-Entwickler für jede validierte oder berechnete Eigenschaft ein Paar aus getX() und setX() geschrieben. Property Hooks verlagern diese Logik direkt in die Property-Deklaration selbst - mit get- und set-Hooks, die sich wie normale Felder verwenden lassen, aber wie Methoden Kontrolle über Lesen und Schreiben behalten.
-
11.01.2025
Ohne ElementInternals konnte ein selbst gebautes Custom Element nie wirklich an einem form-Element teilnehmen: kein automatischer Eintrag in FormData, keine native Validierung, kein :invalid-Styling. Die ElementInternals API schliesst diese Luecke ueber attachInternals(), setFormValue() und setValidity() und macht aus einem gewoehnlichen Custom Element ein vollwertiges Formular-Steuerelement.
-
10.01.2025
JavaScript ist von Natur aus single-threaded – aber mit SharedArrayBuffer und Atomics gibt es echten Shared Memory zwischen Threads. Damit lassen sich Szenarien lösen, die mit postMessage nicht effizient zu realisieren waren: schnelle Bildverarbeitung, Parser, WASM-Integration und Lock-freie Datenstrukturen.
-
09.01.2025
Claude kennt nur, was im Kontextfenster steht, außer man verbindet es mit externen Systemen. Das Model Context Protocol macht Ticket-Tracker, Dokumentations-Wikis und Deployment-Pipelines für Claude direkt abfragbar. Dieser Artikel zeigt praktische Integrationsmuster, bewertet echten Zeitgewinn gegen zusätzliche Komplexität und benennt konkrete Sicherheitsrisiken beim Zugriff auf produktive Systeme.
-
09.01.2025
Deprecation Handling ist kein Punkt auf der Upgrade-Checkliste, sondern ein laufender Prozess: PHPStan-Regeln, Composer-Audits und CI-Gates decken deprecated Code auf, lange bevor Magento ihn in einer künftigen Major-Version entfernt und die Migration erzwingt.
-
09.01.2025
Mit Tailwind v4 verschwindet die zentrale tailwind.config.js zugunsten der @theme-Direktive direkt im CSS. Für reine Utility-Klassen ändert sich im Alpine-Template wenig, doch überall dort, wo Alpine-Komponenten bisher Konfigurationswerte aus JavaScript gelesen haben, etwa Breakpoints oder Farbwerte für dynamische Berechnungen, verschiebt sich die Quelle der Wahrheit auf CSS-Custom-Properties. Wer diesen Unterschied versteht, spart sich beim Umstieg von v3 auf v4 unnötige Fehlersuche.
-
09.01.2025
Der Store-Switcher und der Währungsumschalter im Header sind keine gewöhnlichen Dropdowns: Beide müssen einen echten Formular-Submit an einen Magento-Controller auslösen, damit Cookie und Session serverseitig aktualisiert werden und den Seiten-Reload überstehen. Dieser Artikel zeigt, wie man beide Komponenten als zugängliches Alpine.js-Dropdown im Hyvä-Header baut, inklusive ARIA-Listbox-Pattern, Tastatursteuerung, Gruppierung nach Website bei vielen Store Views und CSP-konformer Inline-Registrierung, ganz ohne zusätzliches JavaScript-Bundle.
-
09.01.2025
gRPC verspricht mit Protocol Buffers und HTTP/2 spürbar schnellere und typsichere Kommunikation zwischen internen Services. Der Umstieg lohnt sich aber nicht automatisch überall: Wer REST innerhalb des Unternehmens durch gRPC ersetzt, tauscht Debugging-Komfort und Tooling-Reife gegen Performance ein, und das ist nicht immer der richtige Handel.