L’article explique pourquoi les commandes exécutées via le composant Process de Symfony perdent leur formatage (couleurs, barres de progression) par rapport à un terminal classique. Ce comportement s’explique par l’utilisation par défaut de pipes (tuyaux) plutôt que de terminaux réels, poussant les programmes comme Composer à désactiver les codes ANSI pour éviter des sorties illisibles.
Pour résoudre ce problème, Symfony propose deux méthodes. La première, setTty(true), relie directement le flux du sous-processus au terminal réel, restaurant les couleurs mais empêchant toute capture de la sortie par le script PHP. La seconde, setPty(true), utilise un Pseudo-Terminal (PTY) pour émuler un terminal, offrant l’illusion d’un environnement interactif tout en permettant de récupérer la sortie via getOutput().