Magento 2 Experten — Hyvä Theme, Tailwind CSS & SEO aus einer Hand ›

Mercure-Grundlagen

Mercure-Grundlagen

~14 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026

BISHER erfährt ein Client von Änderungen NUR, wenn er AKTIV nachfragt (Polling) – Mercure liefert Updates in ECHTZEIT, OHNE dass der Client wiederholt nachfragen muss.

Was ist Mercure?

Mercure ist ein OFFENER Protokoll-Standard AUF BASIS von Server-Sent Events (SSE) – ein Client öffnet EINE langlebige HTTP-Verbindung zu einem "Hub", der Verbindung bleibt OFFEN, und der Server sendet Updates, SOBALD sie auftreten.

Der Hub im Docker-Compose-Setup

Die api-platform-Distribution bringt einen Mercure-Hub BEREITS als EIGENEN Container mit (compose.yaml, Service mercure) – KEINE zusätzliche Installation nötig, ANDERS als bei JWT (Kapitel 48).

docker compose ps mercure
.env (Ausschnitt)
MERCURE_URL=https://php/.well-known/mercure
MERCURE_PUBLIC_URL=https://localhost/.well-known/mercure
MERCURE_JWT_SECRET="!ChangeThisMercureHubJWTSecretKey!"

Achtung: GENAU wie das JWT-Secret aus lexik_jwt_authentication.yaml (Kapitel 48) MUSS MERCURE_JWT_SECRET für ein PRODUKTIONSSYSTEM durch einen ECHTEN, zufällig generierten Wert ersetzt werden.

Hub vs. API: zwei getrennte Verantwortlichkeiten

KomponenteAufgabe
Die Symfony/API-Platform-AnwendungERZEUGT Updates (z. B. "Project 1 wurde geändert") und PUBLIZIERT sie zum Hub
Der Mercure-HubVERTEILT publizierte Updates an ALLE Clients, die den passenden "Topic" ABONNIERT haben

DIESE Trennung ist BEWUSST: der Hub ist eine EIGENSTÄNDIGE, generische Komponente, die AUCH von völlig ANDEREN Anwendungen (nicht nur Symfony/PHP) genutzt werden könnte.

Topics erklärt

Ein Topic ist SCHLICHT eine URI, die eine "Nachrichten-Kategorie" identifiziert – GENAU wie ein Kanal-Name bei Pub/Sub-Systemen. API Platform nutzt STANDARDMÄSSIG die IRI der Resource als Topic (Kapitel 68 zeigt das KONKRET), z. B. /api/projects/1.

Tipp: Mercure ist BEWUSST NICHT auf API Platform BESCHRÄNKT – GENAU dieselbe Hub-Infrastruktur ließe sich AUCH von einem KOMPLETT unabhängigen Skript (z. B. einem Cron-Job) zum PUBLIZIEREN von Updates nutzen, dieses Kapitel konzentriert sich aber auf die API-Platform-Integration.