feat: finalize architecture guidelines and patterns
This commit is contained in:
+4
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user