Seite 191 - Maxim Mironjuk
-
Maxim Mironjuk
-
August 17, 2025
Wird die vollständige Elasticsearch Query DSL direkt im Anwendungscode zusammengebaut, verteilt sich Suchlogik über viele Stellen der Codebasis und jede Anpassung an einer zentralen Query erfordert Änderungen an mehreren Orten gleichzeitig. Search Templates lösen dieses Problem, indem sie eine Mustache-basierte Query-Vorlage einmal zentral in Elasticsearch hinterlegen und der Anwendungscode anschließend nur noch benannte Parameter übergibt, ohne selbst eine Zeile Query-DSL zu kennen. Damit wandert die eigentliche Suchlogik dorthin, wo sie technisch verwaltet werden sollte, und Anwendungsentwickler arbeiten mit einer stabilen, klar dokumentierten Schnittstelle. Wie Search Templates aufgebaut sind, welche Vorteile das für die Zusammenarbeit zwischen Suchteam und Anwendungsteam bringt und wie eine parametrisierte Produktsuche damit konkret aussieht, zeigt dieser Artikel.
-
Maxim Mironjuk
-
August 17, 2025
Verschachtelte Ressourcen wie Bestellpositionen unter einer Bestellung wirken auf den ersten Blick intuitiv, führen aber schnell zu unübersichtlichen URL Strukturen und doppelter Autorisierungslogik, wenn sie unüberlegt eingesetzt werden. Dieser Artikel zeigt, wie man Subresources in API Platform sauber über uriTemplate modelliert und wann eine eigenständige Ressource die bessere Wahl ist.
-
Maxim Mironjuk
-
August 17, 2025
Testbarkeit entsteht nicht beim Schreiben der Tests, sondern beim Entwurf der Klassen selbst. Wer Abhängigkeiten injiziert, Seiteneffekte isoliert und auf statische Aufrufe verzichtet, baut Code, der sich ohne Umwege testen lässt, ganz gleich welches Test-Framework am Ende zum Einsatz kommt. Dieser Artikel zeigt die Entwurfsprinzipien hinter testbarem PHP-Code jenseits von Assertions und Testrunnern.
-
Maxim Mironjuk
-
August 17, 2025
Die Minicart deckt den schnellen Blick in den Warenkorb ab, die eigentliche Cart-Page ist aber ein eigenständiges Template mit eigenen Anforderungen. Mengenänderungen ohne Reload, ein durchdachter Cross-Sell-Bereich und eine Gutschein-Eingabe, die Fehler klar kommuniziert, entscheiden hier oft über Kaufabbruch oder Checkout-Start.
-
Maxim Mironjuk
-
August 17, 2025
Sobald eigenes CSS außerhalb von Utility-Klassen geschrieben wird, taucht dieselbe Frage immer wieder auf: Wie kommt man an die Werte aus @theme, ohne sie doppelt zu pflegen? Die theme() Funktion in Tailwind CSS v4 beantwortet genau das, und sie funktioniert anders, als man es von CSS Custom Properties erwarten würde.
-
Maxim Mironjuk
-
August 17, 2025
Das textbasierte BM25-Scoring von Elasticsearch bewertet Relevanz allein anhand von Textübereinstimmung, ignoriert dabei aber geschäftlich relevante Signale wie Lagerbestand oder Marge. Über Painless-Skripte in einer Function-Score-Query lässt sich diese Lücke schließen, allerdings nur, wenn Integration in Magento und Performance-Auswirkungen sauber verstanden werden.
-
Maxim Mironjuk
-
August 17, 2025
Environment-Variablen trennen Konfiguration von Code, doch derselbe Mechanismus, der Secrets flexibel macht, macht sie auch angreifbar. Erreichbare phpinfo()-Aufrufe, ins Docker-Image gebackene Zugangsdaten und ungeschützte env.php-Dateien zählen zu den häufigsten Ursachen für Datenlecks in PHP- und Magento-Projekten. Dieser Artikel zeigt konkrete Gegenmaßnahmen für Docker, CI/CD und Magento.
-
Maxim Mironjuk
-
August 17, 2025
Wer das Luma-Newsletter-Widget einfach in ein Hyvä-Theme kopiert, kollidiert mit der strikten Content Security Policy und bekommt ein Formular, das im Browser lautlos versagt. Eine saubere Newsletter-Integration braucht stattdessen registerInlineScript(), eine schlanke Alpine.js-Komponente mit fetch(), einen korrekt kommunizierten Double-Opt-in-Flow und eine serverseitig geprüfte DSGVO-Consent-Checkbox, sauber über Layout-XML in Footer, Checkout-Success und CMS-Block platziert.
-
Maxim Mironjuk
-
August 17, 2025
Wer in Symfony-Controllern noch manuell $request->query->get() und json_decode($request->getContent()) schreibt, verschenkt Typsicherheit und Validierung. MapQueryString und MapRequestPayload mappen Query-Parameter und Request-Body seit Symfony 6.3 direkt in typisierte DTOs — automatisch deserialisiert, validiert und einsatzbereit.
-
Maxim Mironjuk
-
August 17, 2025
JavaScript läuft in Browsern auf einem einzigen Main Thread, der Rendering, Layout und Nutzereingaben gemeinsam verarbeitet. Dieser Artikel erklärt Call Stack, Task Queue und Microtask Queue im Detail, zeigt warum Tasks über fünfzig Millisekunden Rendering und Klicks blockieren, und liefert konkrete Techniken wie Chunking, requestIdleCallback und scheduler.yield, um lange Aufgaben in reaktionsfreundliche Häppchen aufzuteilen.
-