1
0
Files
breadcrumb-the-shire/docs/reference-extension-readiness.md
fs 7121732fcf refactor(cli)!: hard-cut legacy scripts and standardize console runtime
- remove legacy bin/module-*.php and bin/doctor.php entry scripts

- move module/doctor execution into class-based runners under lib/Console

- add stable JSON output for doctor and module:sync

- introduce bin/dev for init/up/down/logs/console/qa workflow

- update DI wiring, phpstan scan config, tests, and docs to new CLI contract
2026-04-01 17:14:20 +02:00

2.1 KiB

Extension-Readiness (Module-System V1.1)

Letzte Aktualisierung: 2026-03-18

Ziel

Verbindliche Vorbedingungen fuer 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 fuer Felddefinitionen/Guards immer auf den Manifest-Contract.

Readiness-Checkliste vor Modul 2+

  1. Modulgrenzen klarziehen
    • Betroffene Schichten benoennen (pages -> Service -> Repository).
    • Keine Modul-spezifischen Hardcodings im Core-Layout/Core-Routing.
  2. Manifest-Contract einhalten
    • module.php validiert gegen den kanonischen Contract (permissions, scheduler_jobs, ui_slots, routes).
    • Route-/Slot-/Layout-Guards laufen fail-fast.
  3. Security + Scope absichern
    • AuthZ/RBAC serverseitig pruefen.
    • Tenant-Scope serverseitig pruefen.
    • POST-Mutationen mit CSRF absichern.
  4. Runtime-Hygiene absichern
    • php bin/console module:sync laeuft reproduzierbar mit standardisierter Step-Summary.
    • Keine First-party CLI-Warnings/Notices/Deprecations; Vendor-Rauschen wird nur gezaehlt/reportet.
  5. Testbarkeit und Gates
    • Architektur- und Domain-Tests fuer neue Logik ergaenzen.
    • phpunit und phpstan als Pflicht-Gates gruen.
  6. Daten- und Betriebsfaehigkeit
    • Schema-/Datenaenderungen fuer Bestandsinstallationen idempotent in db/updates/*.sql.
    • Logs/Audit ohne unredacted PII/Secrets.

Derzeit Out of Scope

  • Eigener DB-Server oder Netzwerk-Microservice je Modul.
  • Externe Drittanbieter-Module mit Legacy-Kompatibilitaet.

Verfuegbare Core-Services fuer 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)