Hintergrund
Aktuell existieren in MForm mehrere Renderpfade mit teilweise überlappender Layout-Logik (u. a. Wrapper/Row/Column/Modal in klassischem Parser und Flex-Repeater).
Das ist historisch nachvollziehbar, führt aber in der Praxis zu:
- doppelter Pflege bei Layout-Fixes
- erhöhtem Risiko für Verhaltensdrift
- wiederkehrenden Regressionen (z. B. Row/Col-Themen)
Ziel
Schrittweise Vereinheitlichung der Renderlogik ohne Breaking Changes für bestehende Module.
Vorschlag (inkrementell)
- Gemeinsamen internen Layout-Core definieren
- Zentrale Regeln für Wrapper-Strukturen (Row, Column, Modal, Tab, Collapse).
- Parser und Flex-Repeater nutzen dieselben Kernregeln.
- Bestehende öffentliche APIs unverändert lassen
- Keine Änderung an add*()-Methoden-Signaturen.
- Keine Änderung an gespeicherten Datenformaten.
- Kompatibilitätsnetz einziehen
- Snapshot-/Golden-Tests für typische Wrapper-Kombinationen.
- Spezifische Regression-Tests für addColumnElement + Repeater + Modal.
- Optionales Verhalten über Attribute statt Sonderpfade
- Erweiterungen über klar benannte Attribute/Klassen.
- Kein implizites Hart-Coding pro Pfad.
- Migration in kleinen PR-Schritten
- Erst intern konsolidieren, dann sukzessive alte Duplikate abbauen.
- Jede Stufe mit php-cs-fixer + rexstan + visueller Gegenprobe absichern.
Akzeptanzkriterien
- Gleiches Verhalten in klassischem Parser und Flex-Repeater für identische Wrapper-Szenarien.
- Keine erforderlichen Anpassungen an bestehenden Modulcodes.
- Dokumentierte, optionale Erweiterungspunkte (Attribute/Klassen).
- Kein Rückschritt in den bestehenden Row/Col-Fixes.
Notizen
- Der aktuelle Stand enthält bereits Fixes für Row/Col-Probleme.
- Dieses Issue dient als struktureller Folgepunkt, um künftige Doppel-Fixes zu vermeiden.
Hintergrund
Aktuell existieren in MForm mehrere Renderpfade mit teilweise überlappender Layout-Logik (u. a. Wrapper/Row/Column/Modal in klassischem Parser und Flex-Repeater).
Das ist historisch nachvollziehbar, führt aber in der Praxis zu:
Ziel
Schrittweise Vereinheitlichung der Renderlogik ohne Breaking Changes für bestehende Module.
Vorschlag (inkrementell)
Akzeptanzkriterien
Notizen