Ställa in PHP CodeSniffer per projekt
För några år sedan skrev jag ett inlägg om att ställa in PHP CodeSniffer i Visual Studio Code (och jag har nyligen uppdaterat det också).
Men det har gått fyra år sedan det inlägget ursprungligen skrevs och under den tiden kan mycket förändras när det gäller hur vi skriver kod.
Fyra år är väl ungefär en internetålder?
Hur som helst, de grundläggande punkterna i den artikeln kvarstår, men om du arbetar med en mängd olika projekt och några av dem kräver olika konfigurationer, inställningar och standarder, så kan sättet du går tillväga för att installera och konfigurera PHP CodeSniffer vara annorlunda än hur du konfigurerar det på systemnivå.
Så om du är i den positionen, så här kan du konfigurera PHP CodeSniffer per projekt med Visual Studio Code.
PHP CodeSniffer per projekt
Den här artikeln gör några antaganden:
- Du är bekant med kompositör ,
- Du vet hur man hanterar arbetsytor i kod,
- Du är bekant med PHP CodeSniffer (åtminstone på global nivå),
- Och du vet hur man arbetar med kodtillägg.
Om du är osäker på något av dessa, läs den här artikeln och återkom sedan. Jag tar dig igenom resten.
1 Installera PHP CodeSniffer lokalt
Eftersom olika projekt kan kräva en annan uppsättning standarder, tycker jag att det är användbart att behålla en kopia av composer.json
och, naturligtvis, composer.lock
per projekt.
Det betyder att i roten av mitt projekt har jag en composer.json
fil med allt jag behöver för ett givet projekt. När det gäller den här artikeln behöver jag en kopia av PHP CodeSniffer.
För att installera PHP CodeSniffer och den senaste versionen av WordPress Coding Standards på projektnivå, skapar jag ovanstående fil i roten av mitt projekt och inkluderar sedan följande:
{
"require": {
"wp-coding-standards/wpcs": "2.3.0",
"squizlabs/php_codesniffer": "3.*"
}
}
I de flesta fall kommer den här filen att vara mycket mer komplex men du får den allmänna uppfattningen om vad du behöver inkludera.
Kör sedan composer install
och detta kommer att skapa en vendor
katalog i ditt projekt som kommer att innehålla både WordPress-kodningsstandarder och PHP CodeSniffer.
2 Konfigurera symboliska länkar till de lokala binärerna
Vid det här laget kan du finna det användbart att skapa en symbolisk länk till binärfilerna för PHPCS och PHPCBF för att inte komma i konflikt med vad du än kör på global nivå.
För att göra detta, i roten av projektet kan du ange följande i din terminal:
$ ln -s /vendor/bin/phpcs phpcs
$ ln -s /vendor/bin/phpcbf phpcbf
Detta gör att du kan köra binärfilerna från din terminal. För att testa är ute, prova följande kommando:
$ ./phpcs --version
Och du borde se utdata så här:
PHP_CodeSniffer version 3.5.5 (stable) by Squiz (http://www.squiz.net)
Om så är fallet, har du allt är korrekt inställt.
3 Installera PHP CodeSniffer-tillägget
Nästa steg, utan tvekan det enklaste, är att ställa in PHP CodeSniffer-tillägget i Code. Det finns ett antal alternativ du har men jag har haft en bra erfarenhet av just den här tillägget.
När den väl är installerad och du har laddat om din IDE, bör du vara redo att installera och konfigurera PHP CodeSniffer per projekt.
4 Ställ in din arbetsyta
I Code är nästa sak du vill göra att konfigurera PHP Code Sniffer för ditt specifika projekt. För att göra detta är det enklast att skapa en arbetsyta för ditt projekt.
Du kan göra detta genom att klicka på Arkiv -menyn och sedan klicka på menyalternativet Spara arbetsyta som…. Detta kommer att skapa en project.code-workspace
fil varhelst du väljer att inkludera den.
Om du versionskontrollerar ditt projekt rekommenderar jag att du håller det i roten av ditt projekt så att du kan behålla det i versionskontroll. Därefter, om du öppnar den filen, kommer du att märka att det är JSON och innehåller ett settings
direktiv. Lägg till följande inställningar inom det direktivet:
project.code-workspace
Observera ovan att vi uttryckligen talar om för tillägget var den körbara sökvägen är – det vill säga i vendor
katalogen i förhållande till workspace
filen.
När du har gjort det bör du kunna börja skriva kod och låta den aktivt sniffa din kod medan du arbetar.
Vill ha mer?
Om du är intresserad av ännu mer aggressiv sniffning och fixning av kodlukter och problem rekommenderar jag att du kollar in artikeln om GrumPHP.