3.0 KiB
Analytics-Framework
Dokumentationshinweis: Diese Dokumentation ist vollständig aktualisiert und stellt die aktuelle Implementierung des Analytics-Frameworks korrekt dar.
Übersicht
Das Analytics-Framework ist ein eigenständiges Tracking- und Analysesystem, das vollständig in die Anwendung integriert ist und ohne externe Dienste auskommt. Es ermöglicht die Erfassung, Speicherung und Analyse von:
- Benutzeraktivitäten (Seitenaufrufe, Interaktionen)
- Systemereignissen (Anwendungsstart, Fehler)
- Leistungsdaten (Speicherverbrauch, Ausführungszeit, Datenbankabfragen)
Hauptkomponenten
Analytics-Klasse
Die zentrale API für Tracking-Operationen:
// Klasse initialisieren
$analytics = new Analytics($analyticsManager, $eventDispatcher);
// Event tracken
$analytics->track('event_name', ['property' => 'value']);
// Seite tracken
$analytics->page('/pfad/zur/seite', ['eigenschaft' => 'wert']);
// Benutzer identifizieren
$analytics->user('user_id', ['eigenschaft' => 'wert']);
// Fehler tracken
$analytics->error($exception);
AnalyticsManager
Verarbeitet und speichert Events:
- Wendet Middleware auf Events an
- Puffert Events für effiziente Speicherung
- Verwaltet die Konfiguration
- Steuert die Speicherung in verschiedenen Backends
Storage-System
Basierend auf dem StorageInterface mit verschiedenen Implementierungen:
FileStorage: Speichert Events in Dateien- Erweiterbar für Datenbank, Redis oder andere Backends
Middleware-System
$analyticsManager->addMiddleware(function(array $event) {
// Event verarbeiten oder filtern
return $event; // oder null um zu verwerfen
});
HTTP-Middleware
Automatisches Tracking von HTTP-Requests und -Responses:
// In Bootstrap oder Application-Klasse
$app->addMiddleware(AnalyticsMiddleware::class);
Dashboard und Berichterstattung
Das AnalyticsDashboard bietet Methoden zur Datenanalyse:
getEventStats(): Statistiken zu EventsgetTopPages(): Meistbesuchte SeitengetUserStats(): BenutzerstatistikengetErrorStats(): FehlerstatistikengetPerformanceStats(): Leistungsmetriken
Das Admin-Dashboard ist unter /admin/analytics verfügbar.
Konsolen-Befehle
# Analytics-Daten löschen
php console analytics:clear [--force]
Integration
Service-Container
Der Analytics-Service wird automatisch registriert und kann per Dependency Injection verwendet werden:
public function __construct(private readonly Analytics $analytics) {}
Event-Integration
Standardmäßig werden folgende Anwendungsereignisse getrackt:
- Anwendungsstart (
application_booted) - Fehlerbehandlung (
error_occurred) - Request-Verarbeitung (
request_started,request_completed)
Konfiguration
Detaillierte Konfigurationsoptionen finden Sie in der Framework-README.