update 20.10.2025
This commit is contained in:
parent
8c11130b5d
commit
a939cd51ef
616 changed files with 84821 additions and 4121 deletions
48
dev/subdomain-optimization-gpt-5-v2/README.md
Normal file
48
dev/subdomain-optimization-gpt-5-v2/README.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# Subdomain & Session Handling – Optimierungsvorschlag (GPT-5)
|
||||
|
||||
Dieses Paket enthält einen sauberen, zweistufigen Ansatz für Domain- und Session-Handling, um Probleme mit doppelt initialisierten Sessions und inkonsistenten `user_shop`-Zuständen zu vermeiden. Es ändert keine bestehenden Dateien. Integration ist in `INTEGRATION.md` beschrieben.
|
||||
|
||||
## Ziele
|
||||
|
||||
- Frühe Domain-Auflösung ohne Session-Zugriff (vermeidet doppelte Session-Erstellung)
|
||||
- Späte, robuste Session-/Cookie-Synchronisierung (Sticky-UserShop über Subdomains)
|
||||
- Kompakte, gut getestete Einheiten (Middleware + Service)
|
||||
- Abwärtskompatible Session-Keys optional möglich (für schrittweise Migration)
|
||||
|
||||
## Architektur (Kurzfassung)
|
||||
|
||||
- DomainBootstrap (früh, vor StartSession):
|
||||
|
||||
- Parst Host → `DomainContext` (ohne Sessionzugriff)
|
||||
- Setzt `config('session.domain')` und `config('app.url')` frühzeitig
|
||||
- Hinterlegt `DomainContext` im Container/Request-Attribute
|
||||
|
||||
- DomainSessionSync (spät, nach StartSession):
|
||||
|
||||
- Synchronisiert `user_shop` in Session und Cookie (sticky über Subdomains)
|
||||
- Nutzt `UserShopSessionManager` (Service)
|
||||
- Hält sich strikt an die „kein Sessionzugriff vor StartSession“-Regel
|
||||
|
||||
- UserShopSessionManager:
|
||||
- Vereinheitlicht Lesen/Schreiben von `user_shop` (Session + Cookie)
|
||||
- Optional: Legacy-Keys (`session('user_shop')`) für Bestands-Views/Controller setzen
|
||||
|
||||
## Dateien
|
||||
|
||||
- `src/Http/Middleware/DomainBootstrap.php`
|
||||
- `src/Http/Middleware/DomainSessionSync.php`
|
||||
- `src/Services/UserShopSessionManager.php`
|
||||
- `config/example.subdomain_optimization.php` (Beispielkonfiguration)
|
||||
- `INTEGRATION.md` (Reihenfolge/Registrierung & Migrationspfad)
|
||||
- `docs/ADR-001-domain-session-handling.md` (Entscheidungsdokumentation)
|
||||
|
||||
## Warum dieser Ansatz?
|
||||
|
||||
Die aktuelle Logik greift in Teilen zu früh auf die Session zu, bevor die Kernel-`StartSession`-Middleware aktiv ist. Das kann zu zwei Session-IDs in einem Request führen und verhindert ein konsistentes Sticky-Shop-Verhalten über `in.` und `checkout.`. Der zweistufige Ansatz trennt strikt:
|
||||
|
||||
- Domänenauflösung/Kontext (rein, keine Session)
|
||||
- Zustandssynchronisierung (nur nach Start der Session)
|
||||
|
||||
Damit werden doppelte Sessions vermieden und der `user_shop` zuverlässig über Subdomains hinweg getragen.
|
||||
|
||||
Weitere Details siehe `INTEGRATION.md` und `docs/ADR-001-domain-session-handling.md`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue