VS Code possède des outils et des extensions parfaites pour un développeur PHP : auto-complétion, code sniffer, linter, bref tout ce qu’il faut pour gagner du temps, de la sérénité et de la qualité de code. Seulement voilà, par défaut, VS Code utilise le PHP installé dans le PATH Windows (si tant est qu’il est installé), et cette version n’est pas nécessairement la même que celle de la stack LAMP qui sert votre code (voir Installer et configurer une stack Apache et PHP dans WSL).

Aujourd’hui, nous allons voir comment configurer VS Code pour qu’il utilise la version de PHP déployée dans le WSL.

L’astuce consiste à rediriger tous les appels de VS Code à PHP vers WSL et de demander à WSL d’exécuter PHP avec les arguments passés à la commande. Concrètement, créez un fichier .bat contenant :

@echo off
set v_params=%*
set v_params=%v_params:\=/%
set v_params=%v_params:c:=/mnt/c%
set v_params=%v_params:"=\"%
@bash -c "php %v_params%"

Placez ce fichier dans le répertoire de votre choix. Pour moi, ce sera C:\\wsl-tools\\php.bat.

Ouvrez le settings.json de VS Code, et ajoutez les préférences suivantes :

"php.validate.executablePath": "C:\\wsl-tools\\php.bat",
"php.executablePath": "C:\\wsl-tools\\php.bat",

Redémarrez VS Code et voilà ! VS Code utilise maintenant le PHP de WSL. Et cerise sur le gâteau, cette astuce est compatible avec l’article Gérer de multiples versions de php avec phpbrew.