{"id":229721,"date":"2022-11-08T10:54:00","date_gmt":"2022-11-08T07:54:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229721"},"modified":"2022-11-09T16:05:54","modified_gmt":"2022-11-09T13:05:54","slug":"psr-ien-kaeyttaeminen-versus-wordpress-coding-standards","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/psr-ien-kaeyttaeminen-versus-wordpress-coding-standards\/","title":{"rendered":"PSR:ien k\u00e4ytt\u00e4minen (Versus WordPress Coding Standards)"},"content":{"rendered":"\n<p>T\u00e4ss\u00e4 vaiheessa en tied\u00e4 kuinka monta artikkelia olen kirjoittanut <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a> -koodausstandardien t\u00e4rkeydest\u00e4 (riitt\u00e4v\u00e4sti linkitt\u00e4\u00e4kseni ne <a href=\"https:\/\/tommcfarlin.com\/psrs-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4\u00e4ll\u00e4<\/a>, <a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4\u00e4ll\u00e4<\/a> ja <a href=\"https:\/\/tommcfarlin.com\/wordpress-coding-standards-for-the-planet\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4\u00e4ll\u00e4<\/a>, mik\u00e4 kai merkitsee jotain).<\/p>\n<p>Mutta tehty\u00e4ni tarpeeksi projekteja asiakkaille ja <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ty\u00f6skennelty\u00e4ni kehitt\u00e4jien kanssa,<\/a> jotka ovat paljon \u00e4lykk\u00e4\u00e4mpi\u00e4 ja perehtyneet edistyneisiin ty\u00f6kaluihin kuin min\u00e4, olen paikassa, jossa p\u00e4\u00e4t\u00e4n <a href=\"http:\/\/www.php-fig.org\/psr\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aloittaa<\/a> PSR:n k\u00e4yt\u00f6n WordPress WordPress -kehityksess\u00e4.<\/p>\n<p>Voi draamaa, eik\u00f6?<\/p>\n<p>Vakavasti kuitenkin. T\u00e4lle on syit\u00e4, ja joskus minusta WordPress-koodausstandardeja pit\u00e4isi edelleen k\u00e4ytt\u00e4\u00e4, mutta olen nopeasti vakuuttunut siit\u00e4, ett\u00e4 mink\u00e4 tahansa nykyaikaisen projektin rakentamisessa WordPressin p\u00e4\u00e4lle tulisi k\u00e4ytt\u00e4\u00e4 nykyaikaisempia PHP-ty\u00f6kaluja (jotka min\u00e4 mainitaan lyhyesti my\u00f6hemmin).<\/p>\n<h2>PSR:ien k\u00e4ytt\u00f6 WordPress-kehityksess\u00e4<\/h2>\n<p>T\u00e4m\u00e4nkaltaiset viestit antavat usein tietoa keskustelusta tai dramaattisesta vastauksesta WordPressiss\u00e4, mik\u00e4 ei ole tarkoitukseni eik\u00e4 mielest\u00e4ni edes tarpeellista. Rehellisesti sanottuna tied\u00e4n melkoisen joukon <a href=\"https:\/\/twitter.com\/GaryJ\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">muita<\/a> <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kehitt\u00e4ji\u00e4<\/a> <a href=\"https:\/\/twitter.com\/rarst\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">, jotka ovat<\/a> <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kaikki<\/a> tehneet t\u00e4m\u00e4n kauan sitten, puhuneet siit\u00e4, edenneet ja menestyneet edelleen niin liiketoiminnassaan kuin harrastusprojekteissaan.<\/p>\n<p>Mutta koska olen puhunut yhdest\u00e4 vastaan \u200b\u200bniin paljon, ajattelin jakamisen arvoisena n\u00e4kemykseni siit\u00e4, miksi p\u00e4\u00e4t\u00e4n tehd\u00e4 t\u00e4m\u00e4n muutoksen nyt ja sen taustalla olevista syist\u00e4.<\/p>\n<h3>1 Pariteetti PHP-yhteis\u00f6n kanssa<\/h3>\n<p>Noin viimeisen vuoden aikana ja oikeastaan \u200b\u200bpelk\u00e4st\u00e4\u00e4n t\u00e4m\u00e4n vuoden viimeisten kuukausien aikana olen tottunut enemm\u00e4n:<\/p>\n<ul>\n<li>kokeneempi PHP-suuntautunut kehitt\u00e4j\u00e4yst\u00e4v\u00e4, joka tukee ty\u00f6kaluja, jotka odottavat PSR:n k\u00e4ytt\u00f6\u00f6noton,<\/li>\n<li><a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/issues\/604\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\/\/@codingStandardsIgnoreStart ja \/\/@codingStandardsIgnoreEnd<\/a> k\u00e4ytt\u00f6 koodissani,<\/li>\n<li>mukautetut s\u00e4\u00e4nn\u00f6t projekteilleni niiden ymp\u00e4rist\u00f6jen perusteella, joissa ne on otettu k\u00e4ytt\u00f6\u00f6n,<\/li>\n<li>ja enemm\u00e4n.<\/li>\n<\/ul>\n<p>Viime k\u00e4dess\u00e4 kyse on halusta s\u00e4ilytt\u00e4\u00e4 pariteetti (tai hieman sit\u00e4) suuremman PHP-yhteis\u00f6n kanssa samalla kun kirjoitetaan luettavaa, standardeihin perustuvaa koodia WordPressin p\u00e4\u00e4lle. Ja haluaisin my\u00f6s k\u00e4ytt\u00e4\u00e4 joitain muita ty\u00f6kaluja ja uudempia versioita olemassa olevista ty\u00f6kaluista (jota k\u00e4sittelen my\u00f6hemmin t\u00e4ss\u00e4 viestiss\u00e4).<\/p>\n<h3>2 Nykyaikaisten ymp\u00e4rist\u00f6jen ongelmat<\/h3>\n<p>T\u00e4t\u00e4 viesti\u00e4 kirjoitettaessa <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> (joka tarvitaan WordPress-koodausstandardien suorittamiseen) on versiossa <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/tree\/3.0.2\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">3.0.2<\/a>. PHPCS:n ja WordPress-koodausstandardien kanssa on kuitenkin yhteensopivuusongelmia. <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\/issues\/718\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Erityisesti<\/a> :<\/p>\n<blockquote>\n<p>PHP CodeSnifferin uudessa versiossa on joitain mukavia ominaisuuksia, mutta se tuo mukanaan murtuvia muutoksia, jotka tarkoittavat, ett\u00e4 WordPress-koodausstandardit eiv\u00e4t ole yhteensopivia.<\/p>\n<\/blockquote>\n<p>Selvyyden vuoksi (ja ohjelmiston luonteesta johtuen) on ajan kysymys, ennen kuin se korjataan. Mutta jos ty\u00f6skentelet koodikannan parissa ja k\u00e4yt\u00e4t Composeria ja WordPress Coding Standards -standardeja, sinun on m\u00e4\u00e4ritett\u00e4v\u00e4 erikseen PHP CodeSniffer -versio uusimman version sijaan.<\/p>\n<p>Lis\u00e4ksi olen kokenut ongelmia asiakkaiden kanssa, joissa se, ett\u00e4 en ole ottanut k\u00e4ytt\u00f6\u00f6n PSR:it\u00e4 WordPress-kehityksess\u00e4, on johtanut outoon k\u00e4ytt\u00e4ytymiseen koodia otettaessa. Ehk\u00e4 voitaisiin harkita, ett\u00e4 heid\u00e4n pit\u00e4isi mukauttaa ymp\u00e4rist\u00f6\u00e4, mutta jos he ty\u00f6skentelev\u00e4t saadakseen nykyaikaisimmat ty\u00f6kalut niit\u00e4 k\u00e4ytt\u00e4vien ihmisten saataville, miksi heikent\u00e4\u00e4?<\/p>\n<h3>3 Yhteensopivuus nykyaikaisten ty\u00f6kalujen kanssa<\/h3>\n<p>Lopuksi, on useita nykyaikaisia \u200b\u200bty\u00f6kaluja, joita en ole voinut k\u00e4ytt\u00e4\u00e4, puhumattakaan oppimisesta, koska versioinnin luonne tukee ja mit\u00e4 ei.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166244-61e790be9cd6b.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-166244-61e790be9cd6b.png\" alt=\"PSR:ien k\u00e4ytt\u00e4minen (Versus WordPress Coding Standards)\" ><\/a><\/p>\n<p>Esimerkiksi <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">k\u00e4ytimme<\/a> GrumPHP: <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4<\/a> \u00e4skett\u00e4isess\u00e4 projektissa, jossa on tuki useille ty\u00f6kaluille, mutta emme voineet k\u00e4ytt\u00e4\u00e4 esimerkiksi <a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a> :t\u00e4, koska PSR:it\u00e4 ei hyv\u00e4ksytty. Mit\u00e4 minuun tulee:<\/p>\n<ul>\n<li>Haluan jatkuvasti kehitt\u00e4\u00e4 taitojani kehitt\u00e4j\u00e4n\u00e4 (ja t\u00e4ss\u00e4 yhteydess\u00e4 PHP-kehitt\u00e4j\u00e4n\u00e4),<\/li>\n<li>Nykyaikaisempien ty\u00f6kalujen tuen puute asettaa minut pitokuvioon, jota en muuten kokisi,<\/li>\n<li>Haluan jatkaa ty\u00f6skentely\u00e4 WordPressin kanssa, mutta tehd\u00e4 sen nykyaikaisemman ty\u00f6nkulun avulla<\/li>\n<\/ul>\n<p>Ja juuri nyt PSR:ien k\u00e4ytt\u00e4m\u00e4tt\u00e4 j\u00e4tt\u00e4minen luo aukon muun PHP-yhteis\u00f6n ja WordPressin tekemisen v\u00e4lille. Haluaisin siis edet\u00e4 ja jatkaa ty\u00f6skentely\u00e4 projektien parissa sellaisten ohjelmistojen parissa, joista edelleen nautin.<\/p>\n<h2>Ent\u00e4 WordPressin koodausstandardit<\/h2>\n<p>Joten mit\u00e4 t\u00e4m\u00e4 tarkoittaa WordPressin koodausstandardeissa ja aiemmissa viesteiss\u00e4? Ei oikeastaan \u200b\u200bmit\u00e4\u00e4n. N\u00e4en asian: WordPress-koodausstandardeja tulisi k\u00e4ytt\u00e4\u00e4 aina, kun ty\u00f6skentelet WordPress Coren tai siihen tiiviisti integroitavan asian parissa.<\/p>\n<p>Mutta jos ty\u00f6skentelet sellaisen parissa, joka on WordPressin p\u00e4\u00e4ll\u00e4, tai jotain, joka k\u00e4ytt\u00e4\u00e4 WordPressi\u00e4 perustana, ja voit k\u00e4ytt\u00e4\u00e4 PSR:it\u00e4 WordPress-kehityksess\u00e4 sek\u00e4 ty\u00f6kaluja, jotka voivat auttaa parantamaan luomasi koodikannan laatua.<\/p>\n<p>Joten, ainakin toistaiseksi, t\u00e4m\u00e4 on se n\u00e4k\u00f6kulma, jonka aion omaksua. Odotan mielenkiinnolla, kuinka se kehittyy seuraavien kuukausien aikana. Ja kuten kaikessa muussakin jakamassani, kerron t\u00e4m\u00e4n muutoksen tekemisen n\u00e4k\u00f6kohdat.<\/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>Kun olen ty\u00f6skennellyt tarpeeksi fiksumpien kehitt\u00e4jien kanssa, olen paikalla, jossa voin aloittaa PSR:n k\u00e4yt\u00f6n WordPress-kehityksess\u00e4.<\/p>\n","protected":false},"author":1,"featured_media":166245,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,843,864],"tags":[1166],"class_list":["post-229721","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229721","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=229721"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229721\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/166245"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=229721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=229721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=229721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}