b2in/COMPONENT-STRUCTURE.md
2025-10-20 17:50:35 +02:00

7.8 KiB

Komponenten-Struktur Optimierung

📁 Neue Ordnerstruktur

Die Livewire-Komponenten wurden in logische Unterordner organisiert für bessere Wartbarkeit und Übersichtlichkeit:

resources/views/livewire/web/components/
├── ui/                          # UI-Komponenten (Header, Footer, Forms)
│   ├── header.blade.php
│   ├── footer.blade.php
│   └── contact-form.blade.php
├── sections/                    # Inhalts-Sektionen
│   ├── hero.blade.php
│   ├── ecosystem-core.blade.php
│   ├── vision-section.blade.php
│   ├── brand-worlds.blade.php
│   ├── final-cta.blade.php
│   ├── partner-hero.blade.php
│   ├── partner-benefits.blade.php
│   ├── partner-process.blade.php
│   ├── commitment-section.blade.php
│   ├── dark-stats-section.blade.php
│   ├── spotlights-section.blade.php
│   ├── final-commitment.blade.php
│   ├── about-hero.blade.php
│   ├── our-story.blade.php
│   ├── leadership-team.blade.php
│   ├── our-values.blade.php
│   ├── ecosystem-hero.blade.php
│   ├── ecosystem-stats.blade.php
│   ├── end-customer-section.blade.php
│   ├── broker-section.blade.php
│   ├── supplier-section.blade.php
│   ├── digital-core.blade.php
│   ├── magazin-list.blade.php
│   └── magazin-detail.blade.php
└── demo/                        # Demo-Komponenten
    ├── theme-info.blade.php
    ├── logo-demo.blade.php
    ├── color-demo.blade.php
    ├── button-demo.blade.php
    ├── theme-switcher.blade.php
    └── demo-section.blade.php

🎯 Komponenten-Kategorien

UI-Komponenten (ui/)

  • Zweck: Wiederverwendbare UI-Elemente
  • Verwendung: Header, Footer, Formulare
  • Beispiele:
    • header.blade.php - Navigation und Logo
    • footer.blade.php - Footer mit Links und Logo
    • contact-form.blade.php - Kontaktformular

Sektions-Komponenten (sections/)

  • Zweck: Inhalts-Sektionen für verschiedene Seiten
  • Verwendung: Hero-Bereiche, Inhalts-Sektionen, CTAs
  • Beispiele:
    • hero.blade.php - Haupt-Hero-Bereich
    • ecosystem-core.blade.php - Ecosystem-Darstellung
    • partner-hero.blade.php - Partner-Hero-Bereich

Demo-Komponenten (demo/)

  • Zweck: Theme-Demo und Testing-Komponenten
  • Verwendung: Theme-Demo-Seite, Entwicklungstools
  • Beispiele:
    • theme-info.blade.php - Theme-Informationen
    • color-demo.blade.php - Farb-Demo
    • button-demo.blade.php - Button-Demo

🔄 Aktualisierte View-Referenzen

Vorher:

<livewire:web.components.header />
<livewire:web.components.hero />
<livewire:web.components.footer />

Nachher:

<livewire:web.components.ui.header />
<livewire:web.components.sections.hero />
<livewire:web.components.ui.footer />

📋 Aktualisierte Views

Home-View (web/home.blade.php)

<livewire:web.components.ui.header />
<main>
    <livewire:web.components.sections.hero />
    <livewire:web.components.sections.ecosystem-core />
    <livewire:web.components.sections.vision-section />
    <livewire:web.components.sections.brand-worlds />
    <livewire:web.components.sections.final-cta />
</main>
<livewire:web.components.ui.footer />

Partner-View (web/partner.blade.php)

<livewire:web.components.ui.header />
<main>
    <livewire:web.components.sections.partner-hero />
    <livewire:web.components.sections.partner-benefits />
    <livewire:web.components.sections.partner-process />
    <livewire:web.components.sections.commitment-section />
    <livewire:web.components.sections.dark-stats-section />
    <livewire:web.components.sections.spotlights-section />
    <livewire:web.components.sections.final-commitment />
</main>
<livewire:web.components.ui.footer />

About-View (web/about.blade.php)

<livewire:web.components.ui.header />
<main>
    <livewire:web.components.sections.about-hero />
    <livewire:web.components.sections.our-story />
    <livewire:web.components.sections.leadership-team />
    <livewire:web.components.sections.our-values />
    <livewire:web.components.sections.partner-cta />
</main>
<livewire:web.components.ui.footer />

Contact-View (web/contact.blade.php)

<livewire:web.components.ui.header />
<main>
    <livewire:web.components.ui.contact-form />
</main>
<livewire:web.components.ui.footer />

Ecosystem-View (web/ecosystem.blade.php)

<livewire:web.components.ui.header />
<main>
    <livewire:web.components.sections.ecosystem-hero />
    <livewire:web.components.sections.ecosystem-stats />
    <livewire:web.components.sections.end-customer-section />
    <livewire:web.components.sections.broker-section />
    <livewire:web.components.sections.supplier-section />
    <livewire:web.components.sections.digital-core />
</main>
<livewire:web.components.ui.footer />

Magazin-Views (web/magazin.blade.php, web/magazin-detail.blade.php)

<livewire:web.components.ui.header />
<main>
    <livewire:web.components.sections.magazin-list />
    <!-- oder -->
    <livewire:web.components.sections.magazin-detail :id="$id ?? 1" />
</main>
<livewire:web.components.ui.footer />

Theme-Demo-View (web/theme-demo.blade.php)

<livewire:web.components.ui.header />
<main>
    <livewire:web.components.demo.theme-info />
    <livewire:web.components.demo.logo-demo />
    <livewire:web.components.demo.color-demo />
    <livewire:web.components.demo.button-demo />
    <livewire:web.components.demo.theme-switcher />
</main>
<livewire:web.components.ui.footer />

🚀 Vorteile der neuen Struktur

1. Bessere Organisation

  • Logische Gruppierung nach Funktionalität
  • Klare Trennung zwischen UI, Inhalt und Demo
  • Einfache Navigation durch die Komponenten

2. Verbesserte Wartbarkeit

  • Änderungen an UI-Komponenten betreffen alle Seiten
  • Sektions-Komponenten sind wiederverwendbar
  • Demo-Komponenten sind isoliert

3. Skalierbarkeit

  • Einfache Erweiterung um neue Komponenten
  • Klare Namenskonventionen
  • Modulare Architektur

4. Entwicklerfreundlichkeit

  • Intuitive Pfad-Struktur
  • Vorhersagbare Komponenten-Namen
  • Einfache Suche und Navigation

🔧 Wartung und Erweiterung

Neue UI-Komponente hinzufügen:

# Komponente erstellen
php artisan livewire:make Web/Components/UI/NewComponent

# View in ui/ Ordner erstellen
touch resources/views/livewire/web/components/ui/new-component.blade.php

Neue Sektions-Komponente hinzufügen:

# Komponente erstellen
php artisan livewire:make Web/Components/Sections/NewSection

# View in sections/ Ordner erstellen
touch resources/views/livewire/web/components/sections/new-section.blade.php

Neue Demo-Komponente hinzufügen:

# Komponente erstellen
php artisan livewire:make Web/Components/Demo/NewDemo

# View in demo/ Ordner erstellen
touch resources/views/livewire/web/components/demo/new-demo.blade.php

📝 Best Practices

  1. Namenskonventionen: Verwende kebab-case für Dateinamen
  2. Ordnerstruktur: Halte die logische Gruppierung bei
  3. Wiederverwendbarkeit: UI-Komponenten sollten generisch sein
  4. Spezifität: Sektions-Komponenten können spezifisch sein
  5. Isolation: Demo-Komponenten sollten isoliert bleiben

🔍 Migration abgeschlossen

Alle Views wurden erfolgreich aktualisiert:

  • web/home.blade.php
  • web/partner.blade.php
  • web/about.blade.php
  • web/contact.blade.php
  • web/ecosystem.blade.php
  • web/magazin.blade.php
  • web/magazin-detail.blade.php
  • web/theme-demo.blade.php

Die neue Struktur ist jetzt vollständig implementiert und alle Views verwenden die optimierten Komponenten-Pfade! 🎉