Gérer les suppressions logiques avec SoftDelete
1. Introduction
Les suppressions logiques (soft delete) permettent de supprimer des données de l’application sans les supprimer physiquement de la base de données. Cette opération est généralement gérée grâce à un champ dans la table qui précise si la donnée est supprimée ou non.
L’utilisation d’un plugin dédié permet de ne modifier que très peu de choses dans le code existant afin de transformer la manière de supprimer les données dans une application.
2. Installer le plugin SoftDelete
Nous allons utiliser le plugin CakePHP 3 SoftDelete disponible à cette adresse : https://github.com/PGBI/cakephp3-soft-delete
L’installation se fait en utilisant Composer et la ligne de commande suivante :
composer require pgbi/cakephp3-soft-delete "~1.0"
Une fois le téléchargement terminé, il faut charger ce plugin dans le fichier bootstrap.php de l’application :
Plugin::load('SoftDelete');
3. Configurer le plugin
La première étape consiste à modifier le modèle pour utiliser la suppression logique plutôt que la suppression standard. Pour ce faire, le plugin met à disposition le SoftDeleteTrait.
Ajouter le SoftDeleteTrait à un modèle :
use SoftDelete\Model\Table\SoftDeleteTrait;
class UsersTable extends Table
{
use SoftDeleteTrait;...