Modifier un fichier situé dans le dossier vendor est généralement considéré comme une mauvaise pratique. Pourtant, en Magento 2, ce besoin apparaît régulièrement. En production, un bug bloquant, une dépendance tierce non maintenue ou un comportement incohérent peut imposer une correction rapide, avant même la publication d’un correctif officiel.
Dans ce contexte, la bonne approche ne consiste pas à modifier le vendor directement. Au contraire, il vaut mieux s’appuyer sur des patches Composer. Cette méthode permet de conserver un projet propre, reproductible et conforme aux bonnes pratiques Magento. Dans cet article, nous allons donc voir comment générer facilement ces patches, sans écrire de diff à la main.
Première étape : installer les dépendances nécessaires
Pour gérer et générer des patches efficacement, deux packages Composer s’avèrent indispensables.
composer require cweagans/composer-patches
composer require symplify/vendor-patches --dev
D’une part, cweagans/composer-patches permet à Composer d’appliquer automatiquement les patches lors des commandes composer install ou composer update.
D’autre part, symplify/vendor-patches fournit une commande dédiée pour générer des fichiers de patch à partir de modifications locales.
Grâce à cette combinaison, vous évitez toute manipulation manuelle de diff et vous sécurisez le processus.
Modifier le fichier vendor de manière contrôlée
Une fois les dépendances installées, vous pouvez intervenir sur le fichier concerné.
Commencez par vous rendre dans le dossier vendor, puis identifiez précisément le fichier à corriger. Avant toute modification, dupliquez ce fichier et renommez la copie avec l’extension .old.
Exemple :
trucbidule.php devient trucbidule.php.old
Ensuite, modifiez le fichier original trucbidule.php avec les ajustements nécessaires. À ce stade, testez immédiatement vos changements en local. Cette validation rapide permet de s’assurer que la correction répond bien au problème initial.
Ici, l’objectif reste volontairement simple : modifier le code réellement exécuté, sans se préoccuper immédiatement du patch.
Générer automatiquement le patch
Une fois les modifications validées, vous pouvez générer le patch en une seule commande.
Depuis la racine du projet, exécutez :
vendor/bin/vendor-patches generate
L’outil compare alors automatiquement le fichier modifié avec sa version .old. Il génère ensuite le diff correspondant et crée un fichier de patch dans le dossier patches.
Ainsi, vous obtenez un patch prêt à l’emploi, sans écriture manuelle ni copier-coller risqué.
Vérifier l’application du patch
Avant de considérer le correctif comme final, vous devez impérativement vérifier son application.
Pour cela, supprimez le dossier vendor ou, au minimum, la dépendance concernée. Ensuite, relancez la commande suivante :
composer install
Si la configuration est correcte, Composer applique automatiquement le patch et la correction est bien présente. À ce stade, vous disposez d’un correctif versionné, reproductible et parfaitement compatible avec vos déploiements.
Enfin, pensez à commiter et pousser le dossier patches dans votre dépôt Git. Sans cette étape, le correctif disparaîtra sur les autres environnements.
Patcher un fichier vendor en Magento 2 n’a rien d’une hérésie, à condition d’utiliser les bons outils et la bonne méthode. En combinant composer-patches et vendor-patches, vous mettez en place une solution fiable, maintenable et adaptée aux contraintes de la production.
Cette approche vous permet de corriger rapidement des problèmes critiques tout en conservant un projet stable, propre et conforme aux standards attendus sur des projets Magento professionnels.

