Skip to content

Konventionen ​

Die verbindlichen Regeln für das PIM stehen in admin/CLAUDE.md. Sie gelten für Menschen genauso wie für KI-Assistenten. Hier die wichtigsten.

Sprache im Code ​

  • Kommentare und PHPDoc auf Englisch. Nur Englisch, auch in neuen Dateien neben deutsch kommentiertem Altbestand.
  • Kein sichtbarer Text im PHP- oder Blade-Code. Jeder Text, den ein Benutzer sieht, läuft über __() mit einem Schlüssel aus admin/lang/<sprache>/*.php.
    • Beispiele: lang/de/catalog.php, lang/de/media.php, lang/de/import.php, lang/de/pim.php, lang/de/mail.php.
    • lang/de und lang/en immer gemeinsam pflegen. Deutsch ist die Anwendungssprache, Englisch der Fallback.
  • Kirby- und Nuxt-Code sind überwiegend deutsch kommentiert. Dort gilt: der Stil der Nachbardateien.

PHP ​

  • Geschweifte Klammern immer, auch bei Einzeilern.
  • Constructor Property Promotion.
  • Explizite Rückgabetypen und Parametertypen.
  • Enum-Fälle in TitleCase (ApprovalStatus::ReleasedForChannels).
  • PHPDoc mit Array-Shapes statt Inline-Kommentaren.
  • Beschreibende Namen.
  • Neue Dateien mit php artisan make:… --no-interaction erzeugen.
  • Nach PHP-Änderungen formatieren: vendor/bin/pint --dirty --format agent (bzw. composer lint).

Struktur ​

  • Neue Dateien folgen den Konventionen der Nachbardateien.
  • Keine neuen Basisordner und keine neuen Abhängigkeiten ohne Absprache.
  • Filament 5: Aktionen liegen unter Filament\Actions\.
  • Octane: Keine Request- oder Container-Objekte in Konstruktoren von Singletons und keine statischen Sammelvariablen, die über Requests wachsen. Der Prozess lebt über viele Requests.

Nur eigener Code ​

Kein Debuggen oder Patchen in vendor/, node_modules/ oder generiertem Code. Fehler werden im eigenen Code behoben oder per Konfiguration umgangen.

Tests ​

  • Neue Tests mit php artisan make:test --pest.
  • Tests nicht ohne Absprache löschen.
  • Details: Tests.

Dokumentation ​

  • Doku nur auf Anfrage oder wenn ein Verhalten für andere wichtig ist.
  • Diese Doku liegt in docs/ (VitePress). Navigation in docs/.vitepress/config.ts.
  • Keine Passwörter, Tokens oder personenbezogenen Daten in die Doku. Beispielwerte mit example.test.

Commits ​

  • Commit-Nachrichten im Stil der bestehenden Historie: typ(bereich): kurze Beschreibung auf Deutsch, z. B. fix(pim): …, feat(api): …, docs(api): ….