{"id":231954,"date":"2023-01-03T18:21:00","date_gmt":"2023-01-03T15:21:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231954"},"modified":"2023-01-03T18:23:25","modified_gmt":"2023-01-03T15:23:25","slug":"php-codesnifferin-maeaerittaeminen-projektikohtaisesti","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/php-codesnifferin-maeaerittaeminen-projektikohtaisesti\/","title":{"rendered":"PHP CodeSnifferin m\u00e4\u00e4ritt\u00e4minen projektikohtaisesti"},"content":{"rendered":"\n<p>Muutama vuosi sitten kirjoitin viestin <a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSnifferin asettamisesta Visual Studio Codessa<\/a> (ja olen my\u00f6s \u00e4skett\u00e4in p\u00e4ivitt\u00e4nyt sen).<\/p>\n<p>Mutta on kulunut nelj\u00e4 vuotta siit\u00e4, kun tuo viesti alun perin kirjoitettiin, ja tuona aikana paljon voi muuttua koodin kirjoittamisessa.<\/p>\n<p>Nelj\u00e4 vuotta on suunnilleen Internet-aika, eik\u00f6 niin?<\/p>\n<p>Joka tapauksessa t\u00e4m\u00e4n artikkelin peruskohdat ovat edelleen voimassa, mutta jos ty\u00f6skentelet useissa projekteissa ja jotkin niist\u00e4 vaativat erilaisia \u200b\u200bm\u00e4\u00e4rityksi\u00e4, asetuksia ja standardeja, tapa, jolla asennat ja m\u00e4\u00e4rit\u00e4t PHP CodeSnifferin, voi olla erilainen kuin miten m\u00e4\u00e4rit\u00e4t sen j\u00e4rjestelm\u00e4tasolla.<\/p>\n<p>Joten jos olet t\u00e4ss\u00e4 tilanteessa, voit m\u00e4\u00e4ritt\u00e4\u00e4 PHP CodeSnifferin projektikohtaisesti Visual Studio Coden avulla.<\/p>\n<h2>PHP CodeSniffer projektia kohti<\/h2>\n<p>T\u00e4ss\u00e4 artikkelissa tehd\u00e4\u00e4n muutamia oletuksia:<\/p>\n<ul>\n<li><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">S\u00e4velt\u00e4j\u00e4<\/a> on sinulle tuttu ,<\/li>\n<li>Tied\u00e4t kuinka k\u00e4sitell\u00e4 <a href=\"https:\/\/code.visualstudio.com\/docs\/getstarted\/settings\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ty\u00f6tiloja<\/a> Codessa,<\/li>\n<li>Olet perehtynyt <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSnifferiin<\/a> (ainakin maailmanlaajuisesti),<\/li>\n<li>Ja osaat ty\u00f6skennell\u00e4 Code- <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">laajennusten<\/a> kanssa .<\/li>\n<\/ul>\n<p>Jos olet ep\u00e4varma jostakin n\u00e4ist\u00e4, lue <a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4m\u00e4 artikkeli<\/a> ja palaa sitten. Ohjaan sinut loput l\u00e4pi.<\/p>\n<h3>1 Asenna PHP CodeSniffer paikallisesti<\/h3>\n<p>Koska eri projektit voivat vaatia erilaisia \u200b\u200bstandardeja, mielest\u00e4ni on hy\u00f6dyllist\u00e4 s\u00e4ilytt\u00e4\u00e4 kopio <code>composer.json<\/code>ja luonnollisesti <code>composer.lock<\/code>projektikohtaisesti.<\/p>\n<p>T\u00e4m\u00e4 tarkoittaa, ett\u00e4 minulla on projektini juuressa <code>composer.json<\/code>tiedosto, jossa on kaikki mit\u00e4 tarvitsen tietty\u00e4 projektia varten. T\u00e4m\u00e4n artikkelin tapauksessa tarvitsen kopion PHP CodeSnifferist\u00e4.<\/p>\n<p>Asentaakseni PHP CodeSnifferin ja uusimman version WordPress Coding Standards -standardeista projektitasolla luon yll\u00e4 olevan tiedoston projektini juureen ja lis\u00e4\u00e4n sen j\u00e4lkeen seuraavat tiedot:<\/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>Useimmissa tapauksissa t\u00e4m\u00e4 tiedosto on paljon monimutkaisempi, mutta saat yleisk\u00e4sityksen siit\u00e4, mit\u00e4 sinun on sis\u00e4llytett\u00e4v\u00e4.<\/p>\n<p>Suorita seuraavaksi <code>composer install<\/code>ja t\u00e4m\u00e4 luo <code>vendor<\/code>projektiisi hakemiston, joka sis\u00e4lt\u00e4\u00e4 sek\u00e4 WordPress-koodausstandardit ett\u00e4 PHP CodeSnifferin.<\/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=\"PHP CodeSnifferin m\u00e4\u00e4ritt\u00e4minen projektikohtaisesti\"><\/a><\/p>\n<h3>2 M\u00e4\u00e4rit\u00e4 symboliset linkit paikallisiin binaariin<\/h3>\n<p>T\u00e4ss\u00e4 vaiheessa voi olla hy\u00f6dyllist\u00e4 luoda symbolinen linkki PHPCS:n ja PHPCBF:n bin\u00e4\u00e4riin, jotta et joutuisi ristiriitaan sen kanssa, mit\u00e4 k\u00e4yt\u00e4t globaalilla tasolla.<\/p>\n<p>Voit tehd\u00e4 t\u00e4m\u00e4n kirjoittamalla projektin juureen terminaalissasi:<\/p>\n<pre><code>$ ln -s \/vendor\/bin\/phpcs phpcs\n$ ln -s \/vendor\/bin\/phpcbf phpcbf<\/code><\/pre>\n<p>T\u00e4m\u00e4 mahdollistaa bin\u00e4\u00e4rien suorittamisen terminaalistasi. Kokeile seuraavaa komentoa, jotta testi on suoritettu:<\/p>\n<pre><code>$ .\/phpcs --version<\/code><\/pre>\n<p>Ja sinun pit\u00e4isi n\u00e4hd\u00e4 tulos n\u00e4in:<\/p>\n<pre><code>PHP_CodeSniffer version 3.5.5 (stable) by Squiz (http:\/\/www.squiz.net)<\/code><\/pre>\n<p>Jos n\u00e4in on, kaikki on asetettu oikein.<\/p>\n<h3>3 Asenna PHP CodeSniffer -laajennus<\/h3>\n<p>Seuraava askel, luultavasti helpoin, on PHP CodeSniffer -laajennuksen m\u00e4\u00e4ritt\u00e4minen Codessa. Sinulla on useita vaihtoehtoja, mutta minulla on hyv\u00e4 kokemus <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4st\u00e4 laajennuksesta<\/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=\"PHP CodeSnifferin m\u00e4\u00e4ritt\u00e4minen projektikohtaisesti\"><\/a><\/p>\n<p>Kun se on asennettu ja olet ladannut IDE:n uudelleen, sinun pit\u00e4isi olla valmis asentamaan ja m\u00e4\u00e4ritt\u00e4m\u00e4\u00e4n PHP CodeSnifferin projektikohtaisesti.<\/p>\n<h3>4 M\u00e4\u00e4rit\u00e4 ty\u00f6tilasi<\/h3>\n<p>Codessa seuraava asia, jonka haluat tehd\u00e4, on m\u00e4\u00e4ritt\u00e4\u00e4 PHP Code Sniffer tietty\u00e4 projektia varten. T\u00e4t\u00e4 varten on helpointa luoda ty\u00f6tila projektillesi.<\/p>\n<p>Voit tehd\u00e4 t\u00e4m\u00e4n napsauttamalla <strong>Tiedosto<\/strong> &#8211; valikkoa ja napsauttamalla sitten <strong>Tallenna ty\u00f6tila nimell\u00e4\u2026<\/strong> -valikkokohtaa. T\u00e4m\u00e4 luo <code>project.code-workspace<\/code>tiedoston minne tahansa haluat sis\u00e4llytt\u00e4\u00e4 sen.<\/p>\n<p>Jos hallitset projektisi versiota, suosittelen s\u00e4ilytt\u00e4m\u00e4\u00e4n sen projektin juuressa, jotta voit pit\u00e4\u00e4 sen versionhallinnassa. Seuraavaksi, jos avaat tiedoston, huomaat, ett\u00e4 se on JSON ja sis\u00e4lt\u00e4\u00e4 <code>settings<\/code>ohjeen. Lis\u00e4\u00e4 seuraavat asetukset kyseisen direktiivin sis\u00e4ll\u00e4:<\/p>\n<pre><code>project.code-workspace<\/code><\/pre>\n<p>Huomaa yll\u00e4, ett\u00e4 kerromme nimenomaisesti laajennukselle, miss\u00e4 suoritettava polku on \u2013 eli <code>vendor<\/code>hakemistossa suhteessa <code>workspace<\/code>tiedostoon.<\/p>\n<p>Kun olet tehnyt sen, sinun pit\u00e4isi pysty\u00e4 kirjoittamaan koodia ja saada se aktiivisesti haistamaan koodiasi ty\u00f6skennelless\u00e4\u00e4n.<\/p>\n<h2>Haluta lis\u00e4\u00e4?<\/h2>\n<p>Jos olet kiinnostunut entist\u00e4 aggressiivisemmasta haistelemisesta ja koodin hajujen ja ongelmien korjaamisesta, suosittelen <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/saeveltaejae-wordpressille-osa-2\/\" title=\"tutustumaan GrumPHP:n artikkeliin\">tutustumaan GrumPHP:n artikkeliin<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>N\u00e4in voit aloittaa PHP CodeSnifferin asettamisen projektikohtaisesti k\u00e4ytt\u00e4m\u00e4ll\u00e4 Composeria, Visual Studio Codea ja erilaisia \u200b\u200bkoodausstandardeja.<\/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":[719,895,834,843,803,793,864],"tags":[1166],"class_list":["post-231954","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-opas-aloittelijoille","category-opetusohjelmia","category-php-5","category-visual-studio-code-5","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=231954"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231954\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/236922"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=231954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=231954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=231954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}