{"id":231394,"date":"2023-01-03T18:25:00","date_gmt":"2023-01-03T15:25:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231394"},"modified":"2023-01-03T18:28:46","modified_gmt":"2023-01-03T15:28:46","slug":"staella-in-php-codesniffer-per-projekt","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/staella-in-php-codesniffer-per-projekt\/","title":{"rendered":"St\u00e4lla in PHP CodeSniffer per projekt"},"content":{"rendered":"\n<p>F\u00f6r n\u00e5gra \u00e5r sedan skrev jag ett inl\u00e4gg om <a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">att st\u00e4lla in PHP CodeSniffer i Visual Studio Code<\/a> (och jag har nyligen uppdaterat det ocks\u00e5).<\/p>\n<p>Men det har g\u00e5tt fyra \u00e5r sedan det inl\u00e4gget ursprungligen skrevs och under den tiden kan mycket f\u00f6r\u00e4ndras n\u00e4r det g\u00e4ller hur vi skriver kod.<\/p>\n<p>Fyra \u00e5r \u00e4r v\u00e4l ungef\u00e4r en internet\u00e5lder?<\/p>\n<p>Hur som helst, de grundl\u00e4ggande punkterna i den artikeln kvarst\u00e5r, men om du arbetar med en m\u00e4ngd olika projekt och n\u00e5gra av dem kr\u00e4ver olika konfigurationer, inst\u00e4llningar och standarder, s\u00e5 kan s\u00e4ttet du g\u00e5r tillv\u00e4ga f\u00f6r att installera och konfigurera PHP CodeSniffer vara annorlunda \u00e4n hur du konfigurerar det p\u00e5 systemniv\u00e5.<\/p>\n<p>S\u00e5 om du \u00e4r i den positionen, s\u00e5 h\u00e4r kan du konfigurera PHP CodeSniffer per projekt med Visual Studio Code.<\/p>\n<h2>PHP CodeSniffer per projekt<\/h2>\n<p>Den h\u00e4r artikeln g\u00f6r n\u00e5gra antaganden:<\/p>\n<ul>\n<li>Du \u00e4r bekant med <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">komposit\u00f6r<\/a> ,<\/li>\n<li>Du vet hur man hanterar <a href=\"https:\/\/code.visualstudio.com\/docs\/getstarted\/settings\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">arbetsytor<\/a> i kod,<\/li>\n<li>Du \u00e4r bekant med <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> (\u00e5tminstone p\u00e5 global niv\u00e5),<\/li>\n<li>Och du vet hur man arbetar med <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kodtill\u00e4gg<\/a>.<\/li>\n<\/ul>\n<p>Om du \u00e4r os\u00e4ker p\u00e5 n\u00e5got av dessa, l\u00e4s <a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">den h\u00e4r artikeln<\/a> och \u00e5terkom sedan. Jag tar dig igenom resten.<\/p>\n<h3>1 Installera PHP CodeSniffer lokalt<\/h3>\n<p>Eftersom olika projekt kan kr\u00e4va en annan upps\u00e4ttning standarder, tycker jag att det \u00e4r anv\u00e4ndbart att beh\u00e5lla en kopia av <code>composer.json<\/code>och, naturligtvis, <code>composer.lock<\/code>per projekt.<\/p>\n<p>Det betyder att i roten av mitt projekt har jag en <code>composer.json<\/code>fil med allt jag beh\u00f6ver f\u00f6r ett givet projekt. N\u00e4r det g\u00e4ller den h\u00e4r artikeln beh\u00f6ver jag en kopia av PHP CodeSniffer.<\/p>\n<p>F\u00f6r att installera PHP CodeSniffer och den senaste versionen av WordPress Coding Standards p\u00e5 projektniv\u00e5, skapar jag ovanst\u00e5ende fil i roten av mitt projekt och inkluderar sedan f\u00f6ljande:<\/p>\n<pre><code>{\n    \"require\": {\n        \"wp-coding-standards\/wpcs\": \"2.3.0\",\n        \"squizlabs\/php_codesniffer\": \"3.*\"\n    }\n}\n<\/code><\/pre>\n<p>I de flesta fall kommer den h\u00e4r filen att vara mycket mer komplex men du f\u00e5r den allm\u00e4nna uppfattningen om vad du beh\u00f6ver inkludera.<\/p>\n<p>K\u00f6r sedan <code>composer install<\/code>och detta kommer att skapa en <code>vendor<\/code>katalog i ditt projekt som kommer att inneh\u00e5lla b\u00e5de WordPress-kodningsstandarder och PHP CodeSniffer.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e841e56c6.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e841e56c6.png\" alt=\"St\u00e4lla in PHP CodeSniffer per projekt\"><\/a><\/p>\n<h3>2 Konfigurera symboliska l\u00e4nkar till de lokala bin\u00e4rerna<\/h3>\n<p>Vid det h\u00e4r laget kan du finna det anv\u00e4ndbart att skapa en symbolisk l\u00e4nk till bin\u00e4rfilerna f\u00f6r PHPCS och PHPCBF f\u00f6r att inte komma i konflikt med vad du \u00e4n k\u00f6r p\u00e5 global niv\u00e5.<\/p>\n<p>F\u00f6r att g\u00f6ra detta, i roten av projektet kan du ange f\u00f6ljande i din terminal:<\/p>\n<pre><code>$ ln -s \/vendor\/bin\/phpcs phpcs\n$ ln -s \/vendor\/bin\/phpcbf phpcbf<\/code><\/pre>\n<p>Detta g\u00f6r att du kan k\u00f6ra bin\u00e4rfilerna fr\u00e5n din terminal. F\u00f6r att testa \u00e4r ute, prova f\u00f6ljande kommando:<\/p>\n<pre><code>$ .\/phpcs --version<\/code><\/pre>\n<p>Och du borde se utdata s\u00e5 h\u00e4r:<\/p>\n<pre><code>PHP_CodeSniffer version 3.5.5 (stable) by Squiz (http:\/\/www.squiz.net)<\/code><\/pre>\n<p>Om s\u00e5 \u00e4r fallet, har du allt \u00e4r korrekt inst\u00e4llt.<\/p>\n<h3>3 Installera PHP CodeSniffer-till\u00e4gget<\/h3>\n<p>N\u00e4sta steg, utan tvekan det enklaste, \u00e4r att st\u00e4lla in PHP CodeSniffer-till\u00e4gget i Code. Det finns ett antal alternativ du har men jag har haft en bra erfarenhet av <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">just den h\u00e4r till\u00e4gget<\/a>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e847469e5.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e847469e5.png\" alt=\"St\u00e4lla in PHP CodeSniffer per projekt\"><\/a><\/p>\n<p>N\u00e4r den v\u00e4l \u00e4r installerad och du har laddat om din IDE, b\u00f6r du vara redo att installera och konfigurera PHP CodeSniffer per projekt.<\/p>\n<h3>4 St\u00e4ll in din arbetsyta<\/h3>\n<p>I Code \u00e4r n\u00e4sta sak du vill g\u00f6ra att konfigurera PHP Code Sniffer f\u00f6r ditt specifika projekt. F\u00f6r att g\u00f6ra detta \u00e4r det enklast att skapa en arbetsyta f\u00f6r ditt projekt.<\/p>\n<p>Du kan g\u00f6ra detta genom att klicka p\u00e5 <strong>Arkiv<\/strong> -menyn och sedan klicka p\u00e5 menyalternativet Spara <strong>arbetsyta som&#8230;.<\/strong> Detta kommer att skapa en <code>project.code-workspace<\/code>fil varhelst du v\u00e4ljer att inkludera den.<\/p>\n<p>Om du versionskontrollerar ditt projekt rekommenderar jag att du h\u00e5ller det i roten av ditt projekt s\u00e5 att du kan beh\u00e5lla det i versionskontroll. D\u00e4refter, om du \u00f6ppnar den filen, kommer du att m\u00e4rka att det \u00e4r JSON och inneh\u00e5ller ett <code>settings<\/code>direktiv. L\u00e4gg till f\u00f6ljande inst\u00e4llningar inom det direktivet:<\/p>\n<pre><code>project.code-workspace<\/code><\/pre>\n<p>Observera ovan att vi uttryckligen talar om f\u00f6r till\u00e4gget var den k\u00f6rbara s\u00f6kv\u00e4gen \u00e4r \u2013 det vill s\u00e4ga i <code>vendor<\/code>katalogen i f\u00f6rh\u00e5llande till <code>workspace<\/code>filen.<\/p>\n<p>N\u00e4r du har gjort det b\u00f6r du kunna b\u00f6rja skriva kod och l\u00e5ta den aktivt sniffa din kod medan du arbetar.<\/p>\n<h2>Vill ha mer?<\/h2>\n<p>Om du \u00e4r intresserad av \u00e4nnu mer aggressiv sniffning och fixning av kodlukter och problem rekommenderar jag att du kollar in <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/kompositoer-foer-wordpress-del-2\/\" title=\"artikeln om GrumPHP\">artikeln om GrumPHP<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>S\u00e5 h\u00e4r kan du b\u00f6rja st\u00e4lla in PHP CodeSniffer per projekt med hj\u00e4lp av Composer, Visual Studio Code och olika kodningsstandarder.<\/p>\n","protected":false},"author":1,"featured_media":236922,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[838,848,901,807,724,797,868],"tags":[1173],"class_list":["post-231394","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guide-foer-nyboerjare","category-handledningar","category-koda","category-php-9","category-utvecklaren","category-visual-studio-code-9","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231394","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=231394"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231394\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/236922"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=231394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=231394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=231394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}