Files
espocrm/custom/docs/CHANGELOG_2026-03-09.md

7.9 KiB

Dokumentations-Update: Hook-Entwicklung & Entity-Übersicht

Datum: 9. März 2026
Version: ESPOCRM_BEST_PRACTICES.md 2.0 → 2.1
Durchgeführt von: EspoCRM Docs Maintainer Agent


Zusammenfassung

Umfassende Überarbeitung der Dokumentation mit Fokus auf:

  1. Hook-Entwicklung - Neuer Haupt-Abschnitt
  2. Entity-Übersicht - Vollständige Liste aller Custom Entities
  3. Bekannte Probleme - i18n-Warnungen dokumentiert

Änderungen im Detail

1. Neuer Abschnitt: Hook-Entwicklung

Datei: custom/docs/ESPOCRM_BEST_PRACTICES.md

Umfang: ~600 Zeilen neue Dokumentation

Inhalt:

Überblick & Patterns

  • Hook-Typen-Übersicht (BeforeSave, AfterSave, BeforeRemove, etc.)
  • Moderne Interface-basierte Hooks (EspoCRM 9.x)
  • Legacy Hook-Pattern (EspoCRM < 7.0)
  • Dependency Injection mit Constructor
  • Verfügbare Services (EntityManager, Config, Language, etc.)

Praxis-Beispiele aus dem Projekt

Beispiel 1: CBankverbindungen/BankdatenValidation.php

  • IBAN-Validierung mit Modulo-97-Algorithmus
  • BIC-Format-Prüfung (8 oder 11 Zeichen)
  • Normalisierung (Großbuchstaben, Leerzeichen entfernen)
  • i18n für Fehlermeldungen
  • BadRequest Exception-Handling

Beispiel 2: CDokumente/CDokumente.php

  • Automatische MD5/SHA256-Hash-Berechnung
  • File-Upload-Erkennung
  • Status-Management (new/changed/synced)
  • API-Limitationen dokumentiert

Beispiel 3: CPuls/UpdateTeamStats.php

  • Moderne Interface-basierte Implementation (BeforeSave)
  • Construction Injection für EntityManager
  • Statistik-Berechnung für verwandte Entities
  • Performance-Optimierung mit Conditions

Best Practices

DO:

  • Interface-basierte Hooks (EspoCRM 9.x)
  • Constructor Injection
  • Validierung in beforeSave
  • Exception-werfen bei Fehlern
  • i18n für Fehlermeldungen
  • Performance-Optimierung mit isAttributeChanged()

DON'T:

  • Komplexe Business-Logic in Hooks
  • Direkte SQL-Queries
  • Externe API-Calls in beforeSave
  • Circular Dependencies
  • UI-Logic in Hooks

Debugging & Troubleshooting

  • Log-Output-Patterns
  • Cache-Clear & Rebuild-Workflow
  • Circular Dependency Detection
  • Hook-Reihenfolge (Lifecycle)

2. Custom Entities Übersicht

Datei: custom/docs/ESPOCRM_BEST_PRACTICES.md

Neu hinzugefügt:

Tabelle aller 19 Custom Entities

Entity Beschreibung Hooks Typ
CAdressen Adressen-Verwaltung - Base
CAICollections AI-Dokumenten-Sammlungen - Base
CAICollectionCDokumente Junction: Collections ↔ Dokumente - Junction
CBankverbindungen Bankdaten (IBAN/BIC) Validierung Base
CBeteiligte Beteiligte Personen - Base
CCallQueues Call-Warteschlangen - Base
CDokumente Dokumenten-Management Hash-Berechnung Base
CKuendigung Kündigungen - Base
CMietinkasso Mietinkasso-Fälle - Base
CMietobjekt Mietobjekte - Base
CPuls Posteingangs-System Statistik Base
CPulsTeamZuordnung Puls-Team-Zuordnungen - Base
CVMHBeteiligte VMH-spezifische Beteiligte - Base
CVmhErstgespraech Erstgespräche - Base
CVmhMietverhltnis Mietverhältnisse - Base
CVmhRumungsklage Räumungsklagen - Base
CVmhVermieter Vermieter - Base

Erweiterte Standard-Entities

  • Contact, Call, User, Meeting, Email, Task
  • PhoneNumber, Team, BpmnUserTask

Implementierte Hooks (Übersicht)

  1. CBankverbindungen/BankdatenValidation
  2. CDokumente/CDokumente
  3. CPuls/UpdateTeamStats

3. Bekannte i18n-Warnungen dokumentiert

Datei: custom/docs/ESPOCRM_BEST_PRACTICES.md

Neu im Troubleshooting-Abschnitt:

Dokumentierte Warnungen

⚠ CDokumente (en_US): Link 'cAICollections' fehlt in i18n
⚠ CAICollections (de_DE): Link 'meetings' fehlt in i18n
⚠ CAICollections (de_DE): Link 'cDokumente' fehlt in i18n
⚠ CAICollections (en_US): Link 'cDokumente' fehlt in i18n

Status: Funktional keine Auswirkung

Behebung: JSON-Snippets für alle 4 fehlenden i18n-Einträge bereitgestellt


4. Inhaltsverzeichnis aktualisiert

Dateien:

Änderungen:

  • Neuer Punkt 6: "Hook-Entwicklung"
  • Nummerierung angepasst (Workflow-Management: 6 → 7)
  • Index aktualisiert mit Hook-Entwicklung

5. Architektur-Prinzipien erweitert

Datei: custom/docs/ESPOCRM_BEST_PRACTICES.md

Änderung:

DON'T:
- ❌ Keine komplexe Business-Logic in Hooks (nutze Services)

Vorher:

- ❌ Keine komplexe Logik in Hooks

Validierung

Ausgeführt

python3 custom/scripts/validate_and_rebuild.py --dry-run

Ergebnisse

✓ Alle 702 JSON-Dateien syntaktisch korrekt
✓ 45 Relationships geprüft - alle konsistent
✓ 7 Formula-Definitionen korrekt platziert
⚠ 4 unvollständige i18n-Definitionen (dokumentiert)
✓ 15 Layout-Dateien geprüft, keine Fehler
✓ Alle Dateirechte korrekt (www-data:www-data)
✓ Alle 2 CSS-Dateien syntaktisch korrekt
✓ Alle 11 JavaScript-Dateien syntaktisch korrekt
✓ Alle 348 PHP-Dateien syntaktisch korrekt

Status: Alle Validierungen erfolgreich


Statistiken

Dokumentationsgröße

  • Zeilen: 1698 (vorher: ~1100)
  • Zunahme: ~600 Zeilen (+54%)
  • Abschnitte: 74 (## Überschriften)

Code-Beispiele

  • Neue Hook-Beispiele: 3 vollständige Implementierungen
  • Code-Blocks: ~20 neue PHP/JSON-Snippets
  • Best-Practice-Regeln: 12 DO's, 5 DON'Ts

Für AI Agents

Neue Fähigkeiten nach diesem Update

Agents können jetzt:

  1. Hook-Code mit modernen Interfaces schreiben
  2. IBAN-Validierung mit Modulo-97 implementieren
  3. File-Upload-Hashes automatisch berechnen
  4. Statistik-Felder automatisch aktualisieren
  5. Dependency Injection korrekt nutzen
  6. Circular Dependencies vermeiden
  7. Alle 19 Custom Entities überblicken
  8. i18n-Warnungen verstehen und beheben

Verwendung

Neuer Agent briefen:

python3 custom/scripts/ki_project_overview.py > overview.txt
cat custom/docs/ESPOCRM_BEST_PRACTICES.md

Hook entwickeln:

  1. Lies Abschnitt "Hook-Entwicklung" (Zeile ~670-1270)
  2. Wähle passendes Beispiel (Validierung/Hash/Statistik)
  3. Implementiere mit modernem Interface-Pattern
  4. Teste mit validate_and_rebuild.py

Nächste Schritte (optional)

Optionale Verbesserungen

  1. i18n-Warnungen beheben

    • 4 fehlende Link-Labels hinzufügen
    • JSON-Snippets sind bereitgestellt
  2. Weitere Hooks dokumentieren

    • Falls zukünftig neue Hooks hinzukommen
    • AfterSave, BeforeRemove, AfterRelate Beispiele
  3. Tool-Dokumentation erweitern

    • validate_and_rebuild.py Features dokumentieren
    • Hook-spezifische Validierungen hinzufügen
  4. Testing erweitern

    • Hook-spezifische Unit Tests
    • Circular Dependency Detection Tests

Dateien geändert

  1. custom/docs/ESPOCRM_BEST_PRACTICES.md (Version 2.0 → 2.1)
  2. custom/DOCUMENTATION_INDEX.md
  3. custom/docs/CHANGELOG_2026-03-09.md (NEU)

Kein Code geändert - Nur Dokumentation!


Verifikation

Git Diff (falls verfügbar)

git diff custom/docs/ESPOCRM_BEST_PRACTICES.md
git diff custom/DOCUMENTATION_INDEX.md

Ende des Updates

Dokumentation ist nun vollständig auf dem neuesten Stand mit umfassender Hook-Entwicklung-Dokumentation und Entity-Übersicht.