feat: finalize architecture guidelines and patterns

This commit is contained in:
2026-07-16 12:04:14 +02:00
parent 1d47f7cb9e
commit 3629382dd0
2 changed files with 434 additions and 44 deletions
+4 -1
View File
@@ -8,6 +8,7 @@ Die Anwendung ist in drei strikt getrennte Layer unterteilt:
### UI layer (`src/UI`)
- **Verantwortung**: Präsentation, Handling von User-Input, API-Endpunkte, CLI-Commands.
- **Struktur**: Folgt einer domänenorientierten Struktur `src/UI/{Module}/{Interface}/{Feature}/...` (z.B. `src/UI/Sales/Http/OrderController.php`), um maximale Symmetrie zu den anderen Layern zu gewährleisten.
- **Regel**: Darf ausschließlich die Logic-Layer aufrufen. Ein direkter Zugriff auf die Data-Layer ist untersagt.
### Logic Layer (`src/Logic`)
@@ -21,10 +22,12 @@ Die Anwendung ist in drei strikt getrennte Layer unterteilt:
### Data Layer (`src/Data`)
- **Verantwortung**: Persistenz, Datenabruf und Kommunikation mit externen Systemen.
- **Struktur**: Spiegelt exakt die Verzeichnisstruktur der Logic Layer wider (`src/Data/{Module}/{Feature}/...`), um eine konsistente Auffindbarkeit zwischen Domänenlogik und technischer Implementierung zu gewährleisten.
- **Komponenten**:
- **Repositories**: Zugriff auf Datenbankentitäten.
- **Entities**: Domain-Modelle für die Persistenz.
- **Entities**: Domain-Modelle für die Persistenz (spiegeln DB-Schema).
- **Provider / Processor Interfaces**: Definieren den Datenaustausch mit der Logic-Layer.
- **Mapper**: Transformation zwischen Entity und Business Model.
- **Regel**: Kennt keine Geschäftslogik und ist nur für die Bereitstellung/Speicherung von Daten zuständig.
## 2. Datenfluss & Kommunikation