Je me suis penché dessus récemment et je me le note pour le retrouver facilement par la suite.
/**
* Supprime le contenu d'un dossier de manière récursive
*
* @param string $dir Chemin du dossier a supprimer
* @return void
*/
function rmdirRecursive($dir) : void
{
foreach (glob($dir . "/*") as $item) {
if (is_dir($item)) {
rmdirRecursive($item);
rmdir($item);
} else {
unlink($item);
}
}
}
On pour supprimer le contenu d'un dossier on fera donc :
rmdirRecursive(__DIR__ . '/tmp/cache');
// Si on veut également supprimer le dossier cache :
rmdir(__DIR__ . '/tmp/cache');