Pour répondre aux demandes de droit à l'effacement du RGPD dans une application Symfony utilisant Doctrine, il ne suffit pas de supprimer une entité avec EntityManager::remove(). Cette méthode implique la suppression totale de l'enregistrement, ce qui est souvent impossible pour les données commerciales soumises à des obligations légales de conservation, comme les commandes ou les factures. L'effacement consiste plutôt à "retirer la personne d'un enregistrement qui doit subsister", en anonymisant les informations personnelles tout en conservant la structure essentielle de l'entité.
Les approches courantes comme la suppression directe de l'entité ou la mise à null des champs ne sont pas suffisantes. EntityManager::remove() supprime l'entité entière, ce qui peut entraîner la perte de données essentielles ou des erreurs de contrainte de clé étrangère. La simple nullification des champs dans le code PHP ne garantit pas l'effacement effectif dans la base de données, car Doctrine pourrait ne pas enregistrer ces changements, laissant des données personnelles intactes dans des tables secondaires, des colonnes JSON ou des objets embarqués.
Il est donc recommandé de concevoir l'effacement comme une opération de domaine explicite au sein de l'entité elle-même. Cette méthode, par exemple un forgetPersonalData(), doit être responsable de la suppression de l'identité, de la préservation des enregistrements nécessaires et de la journalisation de l'événement. Cela assure que les données personnelles sont effectivement purgées des champs pertinents tout en maintenant l'intégrité des données commerciales essentielles.
Résumé pour Shaarli :
L'effacement des données RGPD dans Doctrine ne se limite pas à EntityManager::remove(). Pour les données commerciales soumises à conservation, il faut anonymiser les informations personnelles tout en gardant l'enregistrement. Ni la suppression directe ni la nullification des champs ne suffisent à garantir cet effacement. Il faut implémenter des opérations de domaine explicites au sein des entités pour masquer l'identité tout en préservant les données essentielles, et vérifier que Doctrine a bien appliqué les changements.