- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks - Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists - Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services - Add Microsoft OIDC SSO, API token management, and user lifecycle features - Add swagger-ui vendor integration and OpenAPI spec - Add production Docker setup and bin/ scripts - Update composer dependencies, config, templates, and frontend assets throughout Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
71 lines
1.8 KiB
Markdown
71 lines
1.8 KiB
Markdown
# Lokale Entwicklung
|
|
|
|
Letzte Aktualisierung: 2026-02-21
|
|
|
|
## Ziel
|
|
|
|
Pragmatischer Tages-Workflow für Entwicklung, Tests und Migrationen.
|
|
|
|
## Start/Stop
|
|
|
|
```bash
|
|
docker compose up -d
|
|
docker compose down
|
|
```
|
|
|
|
Hinweis: `docker compose up -d` startet auch den Service `scheduler` (globaler Minutely-Runner).
|
|
|
|
Bei größeren Refactors oder merkwürdigem Laufzeitverhalten:
|
|
|
|
```bash
|
|
docker compose restart php nginx
|
|
```
|
|
|
|
## Datenbank und Schema-Updates
|
|
|
|
- Basis-Schema + Seeds: `db/init/init.sql`
|
|
- Das Repo nutzt aktuell ein konsolidiertes Init-Schema (keine separaten Migrationsdateien in `db/init/`).
|
|
- Für Bestandsumgebungen Schema-/Permission-Änderungen als idempotentes SQL-Update bereitstellen und manuell ausführen.
|
|
|
|
Beispiel (bestehende Umgebung, SQL-Update manuell ausführen):
|
|
|
|
```bash
|
|
docker compose exec -T db sh -lc \
|
|
'mariadb -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" < /tmp/release-update.sql'
|
|
```
|
|
|
|
## Typischer Implementierungsablauf
|
|
|
|
1. Requirement klären
|
|
2. Repository anpassen (SQL)
|
|
3. Service anpassen (Business-Regeln)
|
|
4. Action/Page anpassen
|
|
5. i18n-Keys ergänzen (`i18n/default_de.json`, `i18n/default_en.json`)
|
|
6. Doku anpassen (`docs/*`)
|
|
|
|
## Pflicht-Checks vor Commit
|
|
|
|
```bash
|
|
docker compose exec php vendor/bin/phpunit
|
|
docker compose exec php vendor/bin/phpstan analyse -c phpstan.neon --no-progress
|
|
npx eslint web/js
|
|
```
|
|
|
|
Optional gezielt:
|
|
|
|
```bash
|
|
docker compose exec php vendor/bin/phpunit tests/I18n/TranslationKeysTest.php
|
|
```
|
|
|
|
## API-spezifisch
|
|
|
|
- OpenAPI aktualisieren: `docs/openapi.yaml`
|
|
- API-Quickref aktualisieren: `docs/api.md`
|
|
- Bei Security-Änderungen auch `docs/sicherheitsmodell.md` aktualisieren
|
|
|
|
## Bei Unsicherheit
|
|
|
|
- Architektur zuerst lesen: `/docs/architektur.md`
|
|
- Sicherheitsregeln prüfen: `/docs/sicherheitsmodell.md`
|
|
- Abschluss immer gegen `/docs/entwickler-checkliste.md`
|