Skip to content
Gérits Aurélien edited this page Feb 18, 2026 · 2 revisions

La classe FileTool offre une interface unifiée pour manipuler le système de fichiers. Elle permet de gérer des opérations complexes comme la suppression récursive, la modification de droits en masse (chmod/chown) ou la compression de données, tout en assurant une journalisation des erreurs via le Logger.

Namespace : Magepattern\Component\File\FileTool

Liste des méthodes

Méthode Paramètres Retour Description
mkdir() $dirs, $mode bool Crée des répertoires récursivement.
remove() $files bool Supprime fichiers ou dossiers (récursif).
copy() $src, $dst, $ovr bool Copie intelligente (vérifie la date de modification).
chmod() $files, $mode... bool Change les permissions (supporte le mode récursif).
makeGZFile() $target, $src bool Compresse un fichier au format GZ (Zlib).
writeConstValue() $name, $val, &$c void Modifie une valeur de configuration dans un fichier.
getCache() $file mixed Système de cache simple (sérialisation + TTL 2 min).

Usage Avancé

  1. Gestion Récursive Simplifiée Contrairement aux fonctions natives, FileTool traite les dossiers et leur contenu automatiquement.
use Magepattern\Component\File\FileTool;

// Supprime un dossier et tout ce qu'il contient (fichiers et sous-dossiers)
FileTool::remove('/path/to/old/logs');

// Applique un chmod 0755 à tout un projet
FileTool::chmod('/var/www/html', 0755, 0000, true);
  1. Copie Intelligente La méthode copy() est optimisée pour ne pas copier inutilement si le fichier destination est déjà à jour (basé sur filemtime).
// Copie seulement si source est plus récent que cible ou si cible absente
FileTool::copy('source.txt', 'backup.txt');

// Force l'écrasement
FileTool::copy('source.txt', 'backup.txt', true);
  1. Manipulation de fichiers de configuration La méthode writeConstValue permet de modifier dynamiquement des fichiers de config PHP sans avoir à parser tout le fichier. Elle supporte les syntaxes define() et les tableaux associatifs.
$config = file_get_contents('config.php');
FileTool::writeConstValue('DB_NAME', 'new_database', $config);
file_put_contents('config.php', $config);

Compression et Cache

Compression GZ Idéal pour archiver des logs ou préparer des exports XML/JSON volumineux.

FileTool::makeGZFile('backup.xml.gz', 'backup.xml', 9);

Système de Cache Éphémère getCache permet de stocker des objets ou tableaux sérialisés avec une expiration automatique de 120 secondes.

$data = FileTool::getCache('cache/search_results.tmp');

if ($data === false || $data === null) {
    // Calculer les données et sauvegarder
    $results = ['...'];
    file_put_contents('cache/search_results.tmp', serialize($results));
}

Sécurité et Fiabilité

Suivi des erreurs : Chaque échec d'écriture ou de permission est capturé par un try...catch et envoyé au Logger interne.

Vérification d'existence : mkdir et remove vérifient systématiquement l'état du système avant d'agir pour éviter les "Warnings" PHP inutiles.

Atomicité : La classe utilise @ sur les fonctions sensibles pour éviter de polluer la sortie utilisateur tout en gérant l'erreur proprement via des exceptions.

Clone this wiki locally