Most German docs were written with `ue`/`ae`/`oe`/`ss` ASCII fallbacks (`fuer`, `aenderung`, `koennen`, `gemaess`) — relic from older toolchain constraints. Replaced 237 occurrences across 38 .md files with proper umlauts and ß so the docs read naturally. Substitutions are constrained to plain prose: fenced code blocks (```...```), inline code spans (`...`), markdown link targets `[..](..)`, and HTML comments are preserved verbatim. Path references like `docs/howto-erste-aenderung.md` keep their original (umlaut-replaced) filenames — only the surrounding prose is normalised. Tool: bin/fix-md-umlauts.py (idempotent — no-op on already-clean files). Re-runnable if ASCII fallbacks creep back in via copy-paste. Doc-link-check + doc-drift-check stay green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Extension-Readiness (Module-System V1.1)
Letzte Aktualisierung: 2026-03-18
Ziel
Verbindliche Vorbedingungen für weitere eigenstaendige Module auf dem bestehenden Modul-System festhalten.
Kanonische Quelle
Normativer Manifest- und Runtime-Contract: /docs/reference-module-manifest-contract.md.
Diese Readiness-Doku ist bewusst kurz und verweist für Felddefinitionen/Guards immer auf den Manifest-Contract.
Readiness-Checkliste vor Modul 2+
- Modulgrenzen klarziehen
- Betroffene Schichten benoennen (
pages -> Service -> Repository). - Keine Modul-spezifischen Hardcodings im Core-Layout/Core-Routing.
- Betroffene Schichten benoennen (
- Manifest-Contract einhalten
module.phpvalidiert gegen den kanonischen Contract (permissions,scheduler_jobs,ui_slots,routes).- Route-/Slot-/Layout-Guards laufen fail-fast.
- Security + Scope absichern
- AuthZ/RBAC serverseitig prüfen.
- Tenant-Scope serverseitig prüfen.
- POST-Mutationen mit CSRF absichern.
- Runtime-Hygiene absichern
php bin/console module:synclaeuft reproduzierbar mit standardisierter Step-Summary.- Keine First-party CLI-Warnings/Notices/Deprecations; Vendor-Rauschen wird nur gezaehlt/reportet.
- Testbarkeit und Gates
- Architektur- und Domain-Tests für neue Logik ergaenzen.
phpunitundphpstanals Pflicht-Gates gruen.
- Daten- und Betriebsfaehigkeit
- Schema-/Datenänderungen für Bestandsinstallationen idempotent in
db/updates/*.sql. - Logs/Audit ohne unredacted PII/Secrets.
- Schema-/Datenänderungen für Bestandsinstallationen idempotent in
Derzeit Out of Scope
- Eigener DB-Server oder Netzwerk-Microservice je Modul.
- Externe Drittanbieter-Module mit Legacy-Kompatibilitaet.
Verfügbare Core-Services für Module
JS-seitig:
- Confirm-Dialog (
confirmDialog) - Async-Flash (
showAsyncFlash) - DOM-Utilities (
app-dom.js) - CSRF-Metadaten über
data-csrf-key/data-csrf-token
PHP-seitig:
- Guard (
MintyPHP\\Support\\Guard) - SessionStore (
MintyPHP\\Http\\SessionStoreInterface) - Flash (
MintyPHP\\Support\\Flash) - DI-Container (
MintyPHP\\App\\AppContainer) - Modul-Contracts (
LayoutContextProvider,SessionProvider,SearchResourceProvider)