40 lines
1.0 KiB
Markdown
40 lines
1.0 KiB
Markdown
|
|
# lib-Standards
|
||
|
|
|
||
|
|
Letzte Aktualisierung: 2026-02-23
|
||
|
|
|
||
|
|
Praktische Regeln nur für `lib/**`. Ergänzt `docs/architektur.md`.
|
||
|
|
|
||
|
|
## 1) Repository-Regeln
|
||
|
|
|
||
|
|
- Verantwortlich für SQL, Filter, Paging und Mapping.
|
||
|
|
- Keine HTTP-, Session-, Redirect- oder Policy-Logik.
|
||
|
|
|
||
|
|
## 2) Service-Regeln
|
||
|
|
|
||
|
|
- Verantwortlich für Fachlogik und Orchestrierung.
|
||
|
|
- Keine Superglobals (`$_POST`, `$_GET`, `$_SESSION`).
|
||
|
|
- Keine Header- oder Redirect-Ausgabe.
|
||
|
|
- Abhängigkeiten per Constructor Injection.
|
||
|
|
|
||
|
|
## 3) Instanziierung
|
||
|
|
|
||
|
|
- Domain-Abhängigkeiten mit `new` nur in Factories/Bootstrap.
|
||
|
|
- Für neue Domain-Logik keine statischen Utility-Klassen.
|
||
|
|
|
||
|
|
## 4) Autorisierung und Scope
|
||
|
|
|
||
|
|
- Zentral über `AuthorizationService` und Policy-Abilities.
|
||
|
|
- Keine verteilten Einzelchecks als primäre Zugriffslogik.
|
||
|
|
|
||
|
|
## 5) API-Contract
|
||
|
|
|
||
|
|
- Extern UUID-first.
|
||
|
|
- Interne IDs nur intern auflösen und mappen.
|
||
|
|
|
||
|
|
## 6) Definition of Done für `lib/**`
|
||
|
|
|
||
|
|
1. Schichtgrenzen eingehalten.
|
||
|
|
2. AuthZ zentral.
|
||
|
|
3. Unit-Tests ergänzt, bei Strukturänderung zusätzlich Contract-Test.
|
||
|
|
4. `phpunit` und `phpstan` grün.
|