Files
breadcrumb-the-shire/docs/konventionen.md

1.2 KiB

Konventionen (kurz und verbindlich)

Letzte Aktualisierung: 2026-02-23

1) Code

  • Kleine, fokussierte Änderungen statt Misch-Commits.
  • Kein toter Code, keine ungenutzten Helpers.
  • ASCII als Standard, Unicode nur wenn Datei es bereits nutzt.

2) Schichten

  • SQL nur in lib/Repository/**.
  • Fachlogik nur in lib/Service/**.
  • pages/** bleibt dünn: Input, Auth/AuthZ, Service-Aufruf, Response.
  • Neue Domain-Logik als Instanz-Service mit Factory-Verdrahtung.

3) Autorisierung

  • Nur zentrale Policy-Abilities nutzen.
  • Keine verteilten userHas(...)-Checks als Hauptlogik.
  • Tenant-Scope nicht in Templates oder JavaScript nachbauen.

4) API

  • UUID-first für externe Ressourcen.
  • Interne IDs nicht nach außen geben.
  • Fehlerantworten einheitlich halten (error, optional errors).
  • OpenAPI bei jeder API-Änderung im selben Merge aktualisieren.

5) Frontend

  • Templates nur für Rendering.
  • UI-Texte über t('...').
  • Strukturregeln in docs/frontend-css.md und docs/frontend-javascript.md.

6) Mindestchecks vor Merge

  • docker compose exec php vendor/bin/phpunit
  • docker compose exec php vendor/bin/phpstan analyse -c phpstan.neon --no-progress
  • bei JS-Änderungen: npx eslint web/js