Aperçu
La fonction de journal d’activité du Sonata Extra Bundle est conçue pour surveiller et enregistrer toutes les activités au sein du site d'administration. Elle offre une vue complète des actions effectuées, des ressources impliquées, des descriptions des activités et des utilisateurs qui les ont réalisées.
Fonctionnalités
- Affichage du type d'action : Affiche le type d'action effectuée (par exemple, créer, mettre à jour, supprimer).
- Suivi des ressources : Identifie la ressource qui a été affectée par l'action.
- Description de l'action : Fournit une description détaillée de l'activité.
- Identification de l'utilisateur : Affiche l'utilisateur qui a effectué l'action.
- Vue détaillée : Offre une vue approfondie des éléments modifiés dans chaque activité.
- Annulation : Comprend une fonction permettant d'inverser les modifications lorsque cela est possible.
Écrans
- Vue en liste :

- Vue détaillée :

Activation du journal d'activité
Pour activer la fonctionnalité du journal d'activité, la configuration du service suivante doit être ajoutée à votre fichier de services :
sonata-extra.doctrine_activity_listener:
class: Partitech\SonataExtra\EventListener\DoctrineActivityListener
tags:
- { name: doctrine.event_listener, event: prePersist }
- { name: doctrine.event_listener, event: preUpdate }
- { name: doctrine.event_listener, event: preRemove }
- { name: doctrine.event_listener, event: onFlush }
- { name: kernel.event_listener, event: sonata.admin.event.batch_action.pre_batch_action, method: onPreBatchAction }
Détails de l'implémentation
- La classe DoctrineActivityListener est responsable d'écouter divers événements de Doctrine et de l'administration Sonata.
- Des événements tels que prePersist, preUpdate, preRemove et onFlush sont suivis pour enregistrer les activités liées aux changements du cycle de vie des entités.
- La méthode onPreBatchAction gère la journalisation des actions par lot effectuées dans l'administration Sonata.
Utilisation
Une fois activée, la fonction Journal d'activité commencera automatiquement à enregistrer les activités en fonction des événements configurés. Les journaux peuvent être consultés dans l'interface d'administration, où les détails de chaque activité sont affichés de manière claire.
Conclusion
Le journal d'activité est une fonctionnalité puissante pour surveiller et contrôler les actions au sein de l'interface d'administration Sonata. Il améliore la transparence et la responsabilité en fournissant des journaux clairs et détaillés de toutes les activités.
Adapter l’exemple à la version installée
Les exemples Symfony et Sonata restent attachés aux versions indiquées dans l’article. Symfony 4.x et Symfony 6.2 ne sont plus maintenus : pour un projet actuel, utilisez une branche maintenue et la documentation correspondant exactement à vos dépendances.
php bin/console about
composer show symfony/framework-bundle sonata-project/admin-bundle
Avant de reprendre le code, contrôlez les signatures, les services, les routes et les templates concernés. Ajoutez ensuite un test fonctionnel couvrant les autorisations, le code HTTP et le résultat visible.
Référence : versions Symfony maintenues.