- Add comprehensive health check system with multiple endpoints - Add Prometheus metrics endpoint - Add production logging configurations (5 strategies) - Add complete deployment documentation suite: * QUICKSTART.md - 30-minute deployment guide * DEPLOYMENT_CHECKLIST.md - Printable verification checklist * DEPLOYMENT_WORKFLOW.md - Complete deployment lifecycle * PRODUCTION_DEPLOYMENT.md - Comprehensive technical reference * production-logging.md - Logging configuration guide * ANSIBLE_DEPLOYMENT.md - Infrastructure as Code automation * README.md - Navigation hub * DEPLOYMENT_SUMMARY.md - Executive summary - Add deployment scripts and automation - Add DEPLOYMENT_PLAN.md - Concrete plan for immediate deployment - Update README with production-ready features All production infrastructure is now complete and ready for deployment.
174 lines
7.7 KiB
Markdown
174 lines
7.7 KiB
Markdown
# Framework-Verbesserungen: Feature-Vorschläge und Refactoring-Roadmap
|
||
|
||
Dieses Dokument sammelt konkrete, priorisierte Vorschläge für neue Features im Framework sowie Refactorings. Ziel ist es, Stabilität, Performance, Developer Experience (DX) und Sicherheit weiter zu erhöhen, ohne den bestehenden Stil (DDD, klare Layer) zu brechen.
|
||
|
||
Inhalt
|
||
- Leitprinzipien
|
||
- Quick Wins (0–2 Tage)
|
||
- Mittelfristig (3–10 Tage)
|
||
- Größere Vorhaben (>10 Tage)
|
||
- Detaillierte Vorschläge je Komponente
|
||
- Querschnittsthemen (Code-Qualität, Tests, Security)
|
||
- Migrations- und Deprecation-Strategie
|
||
|
||
Leitprinzipien
|
||
- Stabilität zuerst: Abwärtskompatibilität, saubere Deprecation-Pfade
|
||
- Sichtbare Wirkung: Quick Wins priorisieren, die Sicherheits- und Performance-Gewinne bringen
|
||
- Messbarkeit: Jede Maßnahme mit Akzeptanzkriterien (Tests, Metriken)
|
||
- Standards nutzen: PSR (3/6/7/11/14/15/16/17), OpenTelemetry, Problem+JSON
|
||
|
||
Quick Wins (0–2 Tage)
|
||
1) HTTP-Härtung und Caching-Header (Http)
|
||
- Feature: Standard-Response-Header: Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options (konfigurierbar), Referrer-Policy, Permissions-Policy
|
||
- Feature: ETag/Last-Modified Support in Responses (konditionelle Requests)
|
||
- Akzeptanz: Pest-Tests für Header-Präsenz und ETag-Validierung; Konfiguration via config/
|
||
|
||
2) Rate Limiting Middleware (Http/Security)
|
||
- Token Bucket oder Sliding Window pro IP/Route
|
||
- Akzeptanz: Tests für 200/429-Flows, Reset-Logik, Redis-Backend optional
|
||
|
||
3) Standardisierte Fehlerantworten (Error Handling)
|
||
- Feature: RFC 7807 Problem+JSON (application/problem+json) für 4xx/5xx
|
||
- Akzeptanz: Tests prüfen Struktur (type, title, status, detail, instance)
|
||
|
||
4) Validation: Konsistente Fehlermeldungen und i18n-Keys (Validation)
|
||
- Feature: Nachrichtenschlüssel mit Platzhaltern; deutsche Default-Texte
|
||
- Akzeptanz: Tests für Regeln, Übersetzungen, Platzhalterersetzung
|
||
|
||
5) PHPStan-Level erhöhen (Code Quality)
|
||
- Level schrittweise von aktuellem Baseline-Stand her anheben; neue generische Typen ergänzen
|
||
- Akzeptanz: composer phpstan läuft ohne neue Fehler; aktualisierte Baseline minimal
|
||
|
||
Mittelfristig (3–10 Tage)
|
||
6) PSR-7/15/17-Kompatibilität (Http)
|
||
- Adapter-Schicht bereitstellen, sodass Requests/Responses als PSR-Objekte nutzbar sind
|
||
- Akzeptanz: Interop-Tests; Middleware-Pipeline kompatibel
|
||
|
||
7) Cache-Verbesserungen (Cache)
|
||
- PSR-16 SimpleCache und PSR-6 Caching Pools
|
||
- Stampede-Protection (Early Recompute, Jitter), Tagging, TTL-Strategien
|
||
- Akzeptanz: Konkurrierende Zugriffe in Tests, Hit/Miss-Statistiken
|
||
|
||
8) Datenbank-Transaktions- und Retry-Policy (Database)
|
||
- Einheitliche Transaktions-API (begin/commit/rollback) mit dekorierbaren Retries (Exponential Backoff, Deadlock-Erkennung)
|
||
- Read/Write-Splitting und Failover-Konfiguration
|
||
- Akzeptanz: Tests mit simulierten Deadlocks/Fehlercodes; idempotente Retries
|
||
|
||
9) Observability (Framework/Observability)
|
||
- PSR-3 Logging-Bridge, strukturierte Logs (JSON), Kontextfelder
|
||
- OpenTelemetry-Exporter (Trace/Span), Request/DB/Cache-Instrumentierung
|
||
- Akzeptanz: Beispiel-Trace sichtbar; Logs enthalten Korrelation-IDs
|
||
|
||
10) Konsistentes Config-System (Config)
|
||
- Typisierte Konfiguration mit Env-Mapping, Defaults, Validatoren
|
||
- Akzeptanz: Fehlkonfigurations-Tests, Fallbacks greifen
|
||
|
||
Größere Vorhaben (>10 Tage)
|
||
11) Job/Queue-Subsystem (Infrastructure)
|
||
- Abstraktion mit Redis/MariaDB-Backend, Delayed Jobs, Retries, Dead-Letter-Queue, Rate Limits, Worker-Signale (graceful shutdown)
|
||
- Akzeptanz: End-to-End-Tests; At-Least-Once-Garantie; Sichtbarkeit im Admin
|
||
|
||
12) WAF-Regel-Engine (Waf)
|
||
- Modular: IP-Reputation, Anomalie-Scoring, Ratelimit je Route, Request-Body-Inspektion (größenbegrenzt), Safe-List/Block-List
|
||
- Akzeptanz: Tests für False-Positive-Vermeidung, Audit-Logs, Bypass für Admin-Routen
|
||
|
||
13) View-System-Verbesserungen (View)
|
||
- Template-Precompilation/Caching, Komponenten/Slots, CSRF-Helfer, sichere Auto-Escapes
|
||
- Akzeptanz: Render-Performance-Benchmark, XSS-Schutz-Tests
|
||
|
||
14) Datenbank-Migrationsmodul (Database)
|
||
- Versionierte Migrationen, Seeders, Rollbacks, Dry-Run, Checksum-Prüfung
|
||
- Akzeptanz: Migrator-Tests, Konflikterkennung, sichere Re-Runs
|
||
|
||
15) Filesystem-Abstraktion (Infrastructure)
|
||
- Lokales FS, S3 kompatibel; Stream-Support, signierte URLs, Limits
|
||
- Akzeptanz: Integrationstests mit Mock-Storage; Fehlerpfade
|
||
|
||
Detaillierte Vorschläge je Komponente
|
||
|
||
Analytics
|
||
- Pageview/Event-API, Sampling, Anonymisierung (IP-Hash), Opt-Out-Cookie
|
||
- Akzeptanz: Events werden im Backend gezählt, DSGVO-Optionen konfigurierbar
|
||
|
||
Cache
|
||
- PSR-16/6, Tagging, Stampede-Schutz (probabilistic early refresh), Cache Warmer, Locking
|
||
- Redis als Primärbackend, APCu als In-Memory
|
||
|
||
Console
|
||
- Auto-Discovery von Commands per Attribute, Lazy-Loading, Progress/Spinner-UX, Table-Helper
|
||
- Akzeptanz: discoverbare Commands ohne manuelle Registrierung
|
||
|
||
Database
|
||
- Verbindungs-Pool (persistent), Read/Write-Splitting, Retry-Policy, Type-Mapping (DateTimeImmutable, Uuid VO)
|
||
- Unit-of-Work optional
|
||
|
||
DateTime
|
||
- Clock-Interface ist vorhanden; ergänzen: Freeze/Travel-Helfer im Test-Kit; monotone Timer für Metriken
|
||
|
||
Http
|
||
- Middleware-Pipeline, PSR-Adapter, konditionelle Antworten (304), Streaming-Responses, Content-Negotiation
|
||
|
||
Random
|
||
- CSPRNG-Wrapper (random_bytes) + Testable Generator (existiert): ergänzen: hex(), int(min,max), uuidV7()
|
||
|
||
Security
|
||
- CSP-Builder, SameSite=strict Cookies, Secure/Httponly Defaults, Secrets-Management (Key-Rotation), Passwort-Hash-Policy (argon2id), CSRF-Token Middleware
|
||
|
||
Validation
|
||
- Regel-Objekte, Composable Rules, i18n-Messages, Custom Rule Registry, ValidationResult Value Object
|
||
|
||
View
|
||
- Komponenten/Slots, Layout-Inheritance, Asset-Helper (integrity Attrs), Template-Cache, Escaping-Policies
|
||
|
||
Waf
|
||
- Regel-Engine, Score-basierte Entscheidungen, einstellbare Schweregrade, Beobachtungsmodus vs. Blocken
|
||
|
||
Observability
|
||
- Request-ID, Correlation-ID, Trace-Propagation (W3C), Metriken (Latenzen, Error-Rates), Export nach OTLP
|
||
|
||
Config
|
||
- Typed Config Klassen mit Validierung, sichere Defaults, Secrets via Env/Files
|
||
|
||
Fehlerbehandlung
|
||
- Problem+JSON, saubere Exception-Hierarchie (Domain, Infra, Http), Mapping auf Statuscodes, Fehlerseiten
|
||
|
||
Queue/Jobs
|
||
- Wiederholungen, Dead-Letter, Backoff, deduplizierte Jobs, Schedule/CRON-ähnlich
|
||
|
||
Filesystem
|
||
- Adapter-Interface, Streams, Limits, Prüfsummen, sichere Upload-Pfade, Virenscan-Hook (optional)
|
||
|
||
Feature Flags
|
||
- Boolean und Gradual Rollouts (Percentage, Targeting), Config-gesteuert, In-Memory + Redis Store
|
||
|
||
Health Checks
|
||
- Readiness/Liveness Endpoints, DB/Cache/Ping, Build-Info (Git SHA, Time)
|
||
|
||
Scheduler
|
||
- Cron-DSL, verteilte Locks, Missed-Run-Catching, Backfill
|
||
|
||
Querschnittsthemen (Code-Qualität, Tests, Security)
|
||
- Tests: Pest Coverage für Kernmodule; Integrationstests mit Docker Services (DB/Redis)
|
||
- Static Analysis: PHPStan Regeln für generics, Psalm optional; Stricte Types überall
|
||
- DX: Makefile/Composer Skripte für häufige Tasks; Vorlagen für neue Module
|
||
- Security: Secure Defaults, Threat Modeling pro Modul, Security-Header als Middleware
|
||
|
||
Migrations- und Deprecation-Strategie
|
||
- Semver beachten; @deprecated Tags mit Ersatz und Removal-Version
|
||
- Feature-Flags für riskante Änderungen
|
||
- Migrationsleitfaden in docs/CHANGES.md mit Codebeispielen
|
||
|
||
Priorisierung (Kurzfassung)
|
||
- Jetzt: (1) Security/HTTP-Header, (2) Rate Limiting, (3) Problem+JSON, (4) Validation i18n
|
||
- Als Nächstes: (6) PSR-7/15, (7) Cache, (8) DB-Transaktionen/Retry, (9) Observability, (10) Config
|
||
- Großprojekte: (11) Queue, (12) WAF, (14) Migrations, (13) View-Verbesserungen
|
||
|
||
Akzeptanzkriterien (Beispielschablone je Ticket)
|
||
- Was: Kurzbeschreibung
|
||
- Warum: Nutzen/Impact
|
||
- Done:
|
||
- [ ] Pest-Tests decken Erfolg und Fehler ab
|
||
- [ ] Dokumentation in docs/ aktualisiert
|
||
- [ ] Konfiguration via config/ möglich
|
||
- [ ] Kein Bruch bestehender APIs oder Deprecation-Hinweis vorhanden
|