Commande app:articles:purge-trashed¶
Référence de la commande Console qui purge définitivement les articles en corbeille depuis plus de 30 jours. Elle est déclenchée automatiquement une fois par jour par le composant Symfony Scheduler et reste exécutable à la main.
Source : src/Command/PurgeTrashedArticlesCommand.php.
Synopsis¶
La commande ne prend ni argument ni option (au-delà des options globales standard de la console Symfony).
Comportement¶
À chaque exécution, la commande :
- calcule un seuil à 30 jours avant l'instant courant ;
- récupère les articles dont le statut est
Trashedet dont la date d'entrée en corbeille (trashedAt) est antérieure à ce seuil ; - supprime chacun de ces articles. La clé étrangère
article_revision.article_idétant enON DELETE CASCADE, l'historique de révisions de chaque article supprimé part avec lui ; - affiche le nombre d'articles purgés et renvoie le code de sortie
0(succès).
La suppression est définitive : il n'y a pas de restauration possible après purge. Un article en corbeille depuis moins de 30 jours n'est pas touché.
Sortie et code de retour¶
| Élément | Valeur |
|---|---|
| Message de succès | [OK] <n> article(s) purgé(s). |
| Code de sortie | 0 (Command::SUCCESS) en cas de succès |
Le nombre <n> reflète le total d'articles supprimés lors de l'exécution (0 si aucun n'a dépassé le seuil).
Planification automatique (Scheduler)¶
La commande porte l'attribut #[AsPeriodicTask(frequency: '1 day')] du composant Symfony Scheduler, en plus de son #[AsCommand]. Cet attribut l'enregistre comme tâche périodique quotidienne sur le schedule default — sans déclaration supplémentaire ni planificateur système externe (cron).
En production, ce schedule est consommé par un worker Messenger :
C'est ce worker qui déclenche la commande au rythme défini par l'attribut. La planification est donc versionnée avec le code : modifier la fréquence se fait dans src/Command/PurgeTrashedArticlesCommand.php, pas dans une configuration serveur séparée.
Vérifier l'enregistrement de la tâche
confirme quePurgeTrashedArticlesCommand est enregistrée comme tâche périodique sur le schedule default.
Exécution manuelle¶
La commande reste exécutable directement, indépendamment du Scheduler — par exemple pour purger immédiatement ou dans un script de maintenance :
L'effet est identique à un déclenchement planifié : seuls les articles en corbeille depuis plus de 30 jours sont supprimés.
Voir aussi¶
- Contenu de travail, contenu publié et corbeille — pourquoi la corbeille se purge à 30 jours et comment la planification s'inscrit dans le cycle de vie de l'article.
- Écrire, enregistrer et publier un article — mettre un article à la corbeille et le restaurer avant la purge.