name: sw-coding-guidelines description: > Shopware-6 Core-Coding-Guidelines: final & internal, Extendability (Events vor Decorators), Decorator-Pattern, Domain-Exceptions, Feature-Flags, DB-Migrationen, Code für Static Analysis, Deprecation-Strategie. Trigger: "Coding Guidelines shopware", "final internal", "extendability", "deprecation strategy", "wie schreibt man shopware code", "Konventionen Core". Shopware 6.7.
Shopware 6 — Coding-Guidelines
Verbindliche Leitlinien aus dem Core (coding-guidelines/). Kernpunkte:
- Extendability: Erweiterung primär über Events (
EventSubscriberInterface); Decorator nur wenn Event-Timing nicht passt. Eigene Klassenfinalmachen, wo möglich. - final & internal:
@internal/finalmarkieren Nicht-API; darauf NICHT verlassen (kann ohne BC-Bruch ändern). - Decorator-Pattern: gleiches Interface,
.innerdelegieren, keine Core-Logik duplizieren. - Domain-Exceptions: pro Domäne eine Exception-Factory mit stabilen
codes (sw-domain-exceptions). - Deprecation: Änderungen hinter Feature-Flags/Major-Flags; konsistente Deprecation-Notices; Rector-Codemods.
- DB-Migrationen: non-destructive
update()+ getrenntupdateDestructive(); idempotent. - Static Analysis: Code so schreiben, dass PHPStan Level (hoch) + Deptrac grün sind; strikte Typen.
Lint/Analyse-Befehle: composer ecs[-fix], composer phpstan, composer eslint:admin|storefront, stylelint, ludtwig.
Architektur-Entscheidungen: sw-adr-knowledge. Static-Analysis-Tools: sw-static-analysis.
Vollständige Code-Guidelines (alle Regeln aus resources/guidelines/code/core): references/deep/code-guidelines-full.md
Erweiterungs-Patterns & @internal/@final in Tiefe: sw-extendability. Plugin-/Bundle-Struktur: sw-code-structure.