Symfony: Anleitungen und Praxiswissen | Seite 7 | mironsoft Blog
Symfony
-
11.09.2025
Der Doctrine Second Level Cache reduziert wiederkehrende Datenbankzugriffe, indem er hydratisierte Entities über Requests hinweg im Cache hält. Richtig konfiguriert mit Cache-Regions, Concurrency-Strategien und einem Redis-Adapter sinkt die Datenbanklast spürbar, ohne dass Konsistenzprobleme entstehen.
-
03.09.2025
Die automatisch generierte OpenAPI Dokumentation von API Platform ist ein starker Ausgangspunkt, bleibt aber ohne Nacharbeit oft zu technisch für externe Konsumenten. Eigene Summaries, konkrete Beispiele und korrekt dokumentierte Sicherheitsschemas verwandeln die generische Swagger UI Seite in eine Dokumentation, mit der ein fremdes Team tatsächlich ohne Rückfragen arbeiten kann.
-
19.08.2025
Ein grüner End-to-End-Test beweist nicht, dass alle Consumer einer Symfony API weiterhin funktionieren, wenn sich ein Response-Feld ändert. Contract Testing macht die Erwartungen jedes Consumers explizit und prüft sie automatisch gegen den echten Provider, lange bevor ein Breaking Change in Produktion Schaden anrichtet.
-
17.08.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.
-
17.08.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.
-
17.08.2025
Wer denselben Code in mehreren Symfony-Projekten wiederholt, sollte ein eigenes Symfony Bundle bauen. Dieser Artikel zeigt die vollstaendige Verzeichnisstruktur, die Bundle-Klasse, das Composer-Paket und die Registrierung im Kernel, damit aus wiederkehrender Logik eine gepflegte, testbare Komponente wird.
-
06.08.2025
Eine öffentlich erreichbare API ohne Ratenbegrenzung ist eine offene Einladung für Brute-Force-Angriffe, Credential Stuffing und automatisierte Datenabfragen. Der Symfony Rate Limiter bietet drei verschiedene Algorithmen – Token Bucket, Sliding Window und Fixed Window – und lässt sich in Minuten in jeden Controller, Service oder Event-Listener integrieren.
-
01.08.2025
Wer Live-Bestellstatus, Benachrichtigungen oder Chat-Nachrichten im Browser anzeigen will, denkt oft sofort an WebSockets — mit allem was dazugehört: eigener Server, Verbindungsmanagement, Protokoll-Handling. Symfony Mercure und Server-Sent Events lösen 80 % dieser Anwendungsfälle einfacher, mit weniger Infrastruktur und nativem Browser-Support ohne externe Bibliotheken.
-
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
Symfony Messenger abstrahiert die eigentliche Warteschlange hinter einer einzigen DSN-Konfiguration, doch hinter dieser Abstraktion verbergen sich grundverschiedene Backends mit sehr unterschiedlichen Eigenschaften. Wer für ein neues Projekt Doctrine, Redis oder AMQP wählt, trifft damit implizit eine Entscheidung über Durchsatzgrenzen, Persistenz-Garantien bei einem Crash und den künftigen Betriebsaufwand des Teams. Dieser Artikel vergleicht die drei gängigen Transport-Backends entlang genau dieser drei Dimensionen und zeigt, welches Backend sich für welchen Anwendungsfall wirklich eignet.