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;...
Pour consulter la suite, découvrez le livre suivant :
couv_EP3CAK.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Vérifier la syntaxe avec CodeSniffer
Suivant
Utiliser Bootstrap dans ses formulaires