Quand on développe du PHP on aime bien respecter ses standards. Wordpress a défini ses propres standards, basés sur les PSR officiels.
Le but est donc de produire du code propre du point de vue des standards de notre framework PHP. Utile si l'on veut produire du code maintenable par d'autres développeurs ou si l'on veut publier un thème ou un plugin par exemple.
PHP_CodeSniffer c'est deux scripts:
phpcs
qui detecte des violations de standards (que l'on pourra choisir)phpcbf
qui corrige automatiquement les violations du standard (notamment le formattage du code source)
Ici on va s'en servir pour configurer le standard de Wordpress dans vscode.
C'est fastidieux mais on fini par s'en sortir.
1 - Installer Composer
sudo apt install composer
Remplacez apt
par votre gestionnaire de paquet favori.
On va l'installer localement dans chaque projet. Vous pouvez aussi le faire globalement mais je préfère ainsi. Il faudra donc repenser seulement à lancer cette commande dans un nouveau projet (la configuration dans le settings.json
sera conservée de projet en projet)
composer require squizlabs/php_codesniffer
composer require phpcsstandards/phpcsutils:@alpha
composer require phpcsstandards/phpcsextra:@alpha
On installe ici localement php_codesniffer
ainsi que des fonctions utils utilisées par ce dernier.
Installer l'extension phpcs depuis le marketplace de vscode
Installer l'extension vscode-phpcbf pour indiquer à vscode où trouver le bin
- cloner dépôt des codings standards de wordpress.
- renommer le en
wpc
, c'est plus simple - copier
wpc
à la racine de votre projet
Il ne nous reste plus qu'à indiquer à phpcs
où se trouve notre standard Wordpress.
A la racine du projet
./vendor/bin/phpcs --config-set installed_paths wpcs
Ok, ça fait beaucoup mais nous sommes fin prêts. Il ne reste plus qu'à configurer les extensions vscode.
Rendez-vous dans votre settings.json
pour paramètrer l'extension qui a pour domaine phpcs. Copiez coller la config suivante
//config phpcs
"phpcs.executablePath": "vendor/bin/phpcs",
"phpcs.standard": "Wordpress",
//config phpcb
"phpcbf.executablePath": "vendor/bin/phpcbf",
"phpcbf.standard": "WordPress",
"phpcbf.documentFormattingProvider": true,
"phpcbf.onsave": true,
"phpcbf.enable": true,
//config php files formatted by phpcbf
"[php]": {
"editor.defaultFormatter": "persoderlind.vscode-phpcbf"
},
Ici on indique à vscode
- le path pour les scripts
phpcs
etphpcbf
- - d'utiliser le standard de Wordpress-
- de formater le code en corrigeant automatiquement les violations d'indentation du standard à la sauvegarde du fichier source
- d'en faire notre formatter php par défaut
Essayez, si tout s'est bien passé vous devriez voir des warnings partout : )
Have fun.
- Dépot Wordpress coding standards
- Setting up WordPress Coding Standards in VS Code
- Setting Up PHP CodeSniffer in Visual Studio Code
- vscode-phpcs : extension Phpcodesniffer pour vscode
- vscode-phpcbf : extension pour configurer
phpcbf
script frère dephpcs
pour beautifer et fixer le code PHP selon le standard choisi