# 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.