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

Le ConsoleTool est le point d'entrée unique pour toutes les tâches en ligne de commande (CLI) de Magepattern. Il centralise la maintenance, les imports et les synchronisations API tout en offrant un monitoring intégré via TimerTool.

Namespace : Magepattern\Component\Tool\ConsoleTool

Utilisation de base

Le fichier exécutable se trouve à la racine : php bin/console.

Lister les commandes : php bin/console ou php bin/console help Lancer une commande : php bin/console [nom:commande]

Configuration des Commandes (Launchers)

Voici comment implémenter les commandes courantes dans votre fichier bin/console en utilisant les outils du framework.

  1. Maintenance : cache:clear Utilise FinderTool pour supprimer les fichiers de cache de manière récursive.
use Magepattern\Component\Tool\ConsoleTool;
use Magepattern\Component\File\FinderTool;

ConsoleTool::register('cache:clear', function($args) {
    ConsoleTool::info("Nettoyage des dossiers temporaires...");

    $cacheDirs = [
        _DIR_VAR . 'compile/', 
        _DIR_VAR . 'cache/'
    ];

    foreach ($cacheDirs as $dir) {
        if (is_dir($dir)) {
            $files = FinderTool::scanRecursive($dir);
            $count = 0;
            foreach ($files as $file) {
                if (is_file($file)) {
                    unlink($file);
                    $count++;
                }
            }
            ConsoleTool::line("  > " . basename($dir) . " : $count fichiers supprimés.");
        }
    }
    ConsoleTool::success("Système de cache réinitialisé.");
}, "Vide les caches de compilation et les fichiers temporaires.");
  1. Transfert : backup:remote Utilise FtpTool pour envoyer des données vers un serveur de secours.
use Magepattern\Component\Tool\ConsoleTool;
use Magepattern\Component\File\FtpTool;

ConsoleTool::register('backup:remote', function($args) {
    $filename = $args[0] ?? 'daily_backup.zip';
    $localFile = _DIR_VAR . 'backups/' . $filename;

    if (!file_exists($localFile)) {
        ConsoleTool::error("Fichier introuvable : $filename");
        return;
    }

    ConsoleTool::info("Connexion FTP et envoi en cours...");
    
    $ftp = new FtpTool('backup.serveur.com', 'admin', 'password_secret');
    
    if ($ftp->upload($localFile, '/remote/backups/' . $filename)) {
        ConsoleTool::success("Sauvegarde distante réussie.");
    } else {
        ConsoleTool::error("Échec du transfert FTP.");
    }
}, "Envoie un fichier de sauvegarde local vers le serveur FTP distant.");
  1. Performance : api:sync Utilise le futur ApiTool pour démontrer le traitement parallèle.
use Magepattern\Component\Tool\ConsoleTool;
use Magepattern\Component\Tool\ApiTool;

ConsoleTool::register('api:sync', function($args) {
    ConsoleTool::info("Synchronisation API (Multi-flux)...");

    $urls = [
        'stock'  => 'https://api.site.com/v1/stocks',
        'prices' => 'https://api.site.com/v1/prices'
    ];

    // Exécution parallèle via Multi-Curl
    $results = ApiTool::fetchParallel($urls);

    foreach ($results as $key => $content) {
        $status = $content ? "OK" : "ERREUR";
        ConsoleTool::line("  - Service $key : [$status]");
    }

    ConsoleTool::success("Synchronisation terminée.");
}, "Synchronise les stocks et prix via des appels API parallèles.");

Monitoring & Performance

Chaque commande lancée via ConsoleTool::run($argv) génère automatiquement un rapport à la fin de son exécution : Temps total : Calculé via TimerTool. Mémoire : Affiche le pic de consommation RAM (utile pour les gros imports). Logs : Toute erreur (Throwable) est capturée, affichée en rouge et envoyée au Logger.

Clone this wiki locally