# Component Migration Guide Anleitung zur Migration von Templates auf die neue Component-Syntax. ## Übersicht Dieser Guide hilft dabei, bestehende Templates von direkter CSS-Klassen-Verwendung auf die neue `` Component-Syntax zu migrieren. ## Schritt-für-Schritt Migration ### Schritt 1: Template analysieren Verwende den Linter um Probleme zu finden: ```bash php console.php design:lint-templates src/Application/Admin/templates/admin-index.view.php ``` ### Schritt 2: Button-Migration **Pattern 1: Einfacher Button** ```html Save ``` **Pattern 2: Button als Link** ```html Back Back ``` **Pattern 3: Button mit Größe** ```html Small Button ``` **Pattern 4: Disabled Button** ```html Processing ``` **Pattern 5: Admin-Button** ```html Click ``` ### Schritt 3: Card-Migration **Pattern 1: Einfache Card** ```html

Content

Content

``` **Pattern 2: Card mit Header** ```html

Title

Content

Content

``` **Pattern 3: Card mit Variante** ```html

Success message

Success message

``` ### Schritt 4: Badge-Migration **Pattern 1: Einfache Badge** ```html Active Active ``` **Pattern 2: Admin-Badge** ```html Error Error ``` **Pattern 3: Pill Badge** ```html Beta Beta ``` ## Häufige Patterns ### In Loops ```html {{$action['label']}} {{$action['label']}} ``` ### Mit Bedingungen ```html Edit ``` ### Mit zusätzlichen Attributen ```html Open Modal ``` ## Troubleshooting ### Problem: Component wird nicht gerendert **Lösung:** Stelle sicher, dass die Component registriert ist: - Component-Klasse existiert in `src/Framework/View/Components/` - Component hat `#[ComponentName('...')]` Attribut - Component implementiert `StaticComponent` Interface ### Problem: Attribute werden nicht übernommen **Lösung:** - Prüfe ob das Attribut in der Component-Klasse unterstützt wird - Verwende `class` Attribut für zusätzliche CSS-Klassen falls nötig ### Problem: Alte Syntax funktioniert noch **Lösung:** - Die alte `` Syntax wird noch unterstützt, sollte aber migriert werden - Verwende den Linter um alte Syntax zu finden ## Migration-Checkliste - [ ] Template mit Linter analysiert - [ ] Alle Buttons migriert - [ ] Alle Cards migriert - [ ] Alle Badges migriert - [ ] Template getestet - [ ] Keine Linter-Fehler mehr ## Automatische Migration (Zukünftig) Ein `--fix` Flag für automatische Migration ist geplant, aber noch nicht implementiert. Bitte migriere Templates manuell nach diesem Guide.