Journal d'activité
Le mode Journal d'activité (HasActivityLog) est un moyen léger de suivre les modifications de vos models Eloquent. Il enregistre les mêmes événements et données que l'Audit Trail complet, mais sans la chaîne de hash cryptographique — hash et prev_hash sont stockés comme null.
Quand utiliser le journal d'activité
Utilisez HasActivityLog lorsque vous avez besoin de suivre ce qui a changé et qui l'a modifié, mais sans nécessiter de preuve cryptographique d'intégrité. Cas d'usage courants :
- Suivi de l'activité utilisateur — qui a fait quoi, quand
- Analytics internes — fréquence des changements, habitudes d'utilisation
- Débogage — retracer quand et comment un enregistrement a été modifié
- Conformité générale — lorsque la preuve de non-falsification n'est pas requise
Si vous avez besoin d'enregistrements d'audit vérifiables et inaltérables, utilisez HasAuditTrail à la place.
Utilisation
Ajoutez le trait HasActivityLog et implémentez l'interface Auditable :
use GrayMatter\AuditChain\Concerns\HasActivityLog; use GrayMatter\AuditChain\Contracts\Auditable; class Post extends Model implements Auditable { use HasActivityLog; }
C'est tout. AuditChain enregistrera automatiquement les événements created, updated et deleted pour votre model.
Ce qui est enregistré
Chaque entrée du journal d'audit capture :
- Type d'événement —
created,updated,deleted(plusrestored,forceDeletedpour SoftDeletes) - Anciennes et nouvelles valeurs — les champs qui ont changé
- Utilisateur — l'utilisateur authentifié ayant effectué la modification
- Adresse IP et user agent
- Horodatage — en UTC
$post = Post::create(['title' => 'Hello World', 'body' => '...']); $post->auditLogs->first(); // event: 'created' // new_values: ['title' => 'Hello World', 'body' => '...'] // hash: null // prev_hash: null
Événements personnalisés
Enregistrez des événements métier qui vont au-delà du CRUD :
$post->audit('published'); $post->audit('featured', oldValues: ['featured' => false], newValues: ['featured' => true], );
Interrogation des logs d'audit
Accédez à l'historique d'audit d'un model via la relation auditLogs :
$post->auditLogs; $post->auditLogs()->where('event', 'updated')->latest('created_at')->get();
Passer au mode Audit Trail
Si vos exigences évoluent, passer de HasActivityLog à HasAuditTrail se fait en une seule ligne :
- use HasActivityLog; + use HasAuditTrail;
Les entrées existantes du journal d'activité (avec des hash null) resteront dans la base de données. La chaîne de hash recommence à zéro à partir de la première entrée enregistrée avec HasAuditTrail — la vérification ne contrôle que les entrées dont le hash n'est pas null.