Laravel : comment supprimer un fichier ou un dossier avec tous ses fichiers

Ce n’est pas la première fois que je vous parle de Laravel et pour cause, ce framework est vraiment très pratique. Dans ma vie de développeur au quotidien, quand je fais du PHP, il est devenu difficile de me passer de Laravel tellement il me facilite la vie. L’une des fonctionnalités que je préfère, ce sont les commandes, mais ce n’est pas son seul avantage. Loin de là, Laravel a beaucoup de choses à offrir pour ses utilisateurs.

En effet avec Laravel, il est possible d’utiliser de nombreux packages avec composer et de profiter des fonctions déjà intégrées dans le framework. Plutôt que d’essayer de faire des fonctions maison, on peut utiliser ce que nous propose Laravel quand c’est possible. Ce sont des fonctions éprouvées car utilisés par de très nombreux développeurs dans le monde et c’est en plus maintenu. C’est un grand avantage notamment lors des changements de version de PHP par exemple. On met à jour Laravel et ses composants et ça remarche comme par magie avec la nouvelle version de PHP que vous venez d’installer !

Ajouter la bonne classe de Laravel

Pour que la suite fonctionne, il va falloir importer dans un premier la bonne classe de Laravel pour manipuler facilement des fichiers. Au début de votre commande, controller ou autre, vous devez donc ajouter la ligne suivante :

use Illuminate\Support\Facades\File;

Cette classe fournit des méthodes pour travailler avec des fichiers sur le système de fichiers, telles que la lecture, l’écriture, la copie, le déplacement, la suppression, etc.

Supprimer un fichier avec Laravel

Maintenant que nous avons notre classe qui est bien importée on peut passer à la suite. On va commencer avec le cas le plus simple, supprimer un fichier. Ce cas peut se présenter quand vous avez par exemple besoin de supprimer un fichier temporaire après un traitement par exemple, supprimer un vieux fichier de log, les cas sont nombreux. Passons maintenant à l’action, voici le code pour supprimer facilement un fichier dans Laravel :

$fichier = storage_path().'/'.'zonetuto.txt';
File::delete($fichier);

Quelques explications pour détailler un tout petit peu si vous êtes débutant :

  • Dans la ligne 1 j’utilise la fonction storage_path() qui pointe vers le dossier  » storage  » et ensuite, j’ai mon fichier zonetuto.txt, je stocke le chemin dans une variable $fichier.
  • La ligne 2 exécute la suppression du fichier avec la fonction delete() de la classe File.

Supprimer un dossier et tout ce qu’il contient de manière récursive

Supprimer un fichier c’est bien mais supprimer un dossier avec tout ce qu’il contient récursivement c’est encore mieux non ? Mais d’ailleurs c’est quoi la récursivité ?

Dans notre cas, la récursivité est souvent utilisée pour parcourir les dossiers et leurs sous-dossiers. Lorsqu’un programme est conçu pour parcourir un dossier et ses sous-dossiers, la récursivité permet de traiter chaque dossier de manière indépendante. Le processus de rappel se poursuit jusqu’à ce que tous les fichiers et sous-dossiers aient été parcourus avec succès. Rassurez-vous dans notre cas, pas de fonction compliquée à créer et manipuler, Laravel à tout prévu !

Pour supprimer un dossier et tous ses sous-dossiers et fichiers, la réponse tient en deux lignes toutes simples :

$dossier = storage_path().'/zonetuto/';
File::deleteDirectory($dossier);

Comme tout à l’heure, je vais dans un premier temps chercher le chemin de mon dossier, puis je lance la bonne fonction. Et voilà le dossier cible est supprimé ainsi que tout ce qu’il contient. Encore deux fonctions bien pratiques présentes dans Laravel qu’il ne faut pas hésiter à utiliser sans modération !

Laisser un commentaire