{"id":229803,"date":"2022-11-10T13:45:00","date_gmt":"2022-11-10T10:45:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229803"},"modified":"2022-11-10T13:55:51","modified_gmt":"2022-11-10T10:55:51","slug":"kirjastot-wordpress-laajennuksille-osa-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/kirjastot-wordpress-laajennuksille-osa-2\/","title":{"rendered":"Kirjastot WordPress-laajennuksille, osa 2"},"content":{"rendered":"\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-laajennusten-kirjastot-osa-1\/\" title=\"Aloitin eilen\">Aloitin eilen<\/a> lyhyen sarjan postauksia, jotka kattavat ty\u00f6kalut, jotka mielest\u00e4ni mahdollistavat korkealaatuisen koodin kirjoittamisen WordPress-projektissa (erityisesti ne, jotka ovat oliol\u00e4hestymistapalla rakennettuja laajennuksia).<\/p>\n<p>Jos et ole lukenut viesti\u00e4, ensimm\u00e4iset mainitut ty\u00f6kalut ovat seuraavat:<\/p>\n<ul>\n<li><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPUnit<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a><\/li>\n<li><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a><\/li>\n<\/ul>\n<p>Haluan jatkaa noin viiden ty\u00f6kalun k\u00e4ytt\u00f6\u00e4 projekteissani. Joten t\u00e4ss\u00e4 on seuraavat kolme, ja kaksi viimeist\u00e4 tulevat seuraavassa postauksessa.<\/p>\n<h2>Kirjastot WordPress-laajennuksille, jatkuu<\/h2>\n<p>Kuten aiemmin mainittiin, pid\u00e4n n\u00e4it\u00e4 ty\u00f6kaluja hy\u00f6dyllisin\u00e4 aina, kun ty\u00f6skentelen oliopohjaisten WordPress-laajennusten parissa. Lis\u00e4ksi ne on luonnollisesti jaettu muutamaan viestiin, jotta jokainen pysyy lyhyin\u00e4 ja keskittyneen\u00e4.<\/p>\n<h3><a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a><\/h3>\n<p>Jos olet lukenut t\u00e4t\u00e4 blogia jonkin aikaa, olet todenn\u00e4k\u00f6isesti lukenut viestin tai ainakin maininnut jotain <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSnifferist\u00e4<\/a>. T\u00e4m\u00e4 on jotain, joka mielest\u00e4ni jokaisen WordPress-kehitt\u00e4j\u00e4n olisi pit\u00e4nyt asentaa IDE:\u00e4\u00e4n, jos ei muuta.<\/p>\n<p>Projektin arkistosivulta:<\/p>\n<blockquote>\n<p>PHP_CodeSniffer tokenisoi PHP-, JavaScript- ja CSS-tiedostot ja havaitsee m\u00e4\u00e4riteltyjen koodausstandardien rikkomukset.<\/p>\n<\/blockquote>\n<p>Mit\u00e4 tulee s\u00e4\u00e4nt\u00f6ihin, se on eri asia. Jotkut ihmiset pit\u00e4v\u00e4t <a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressin koodausstandardeista<\/a> ; jotkut pit\u00e4v\u00e4t parempana <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/psr-ien-kaeyttaeminen-versus-wordpress-coding-standards\/\" title=\"PSR2\">PSR2<\/a> :sta, toiset pit\u00e4v\u00e4t parempana muita s\u00e4\u00e4nt\u00f6j\u00e4. Kyse ei ole niink\u00e4\u00e4n siit\u00e4, mist\u00e4 pid\u00e4t, kunhan sin\u00e4 tai tiimisi olette johdonmukaisia.<\/p>\n<p>Ja juuri t\u00e4m\u00e4 kirjasto auttaa sinua tekem\u00e4\u00e4n. Lis\u00e4ksi ei haittaa, ett\u00e4 voit integroida IDE:hen (olettaen, ett\u00e4 se on yksi suosituimmista editoreista).<\/p>\n<h3><a href=\"https:\/\/github.com\/sebastianbergmann\/phpcpd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPCPD<\/a><\/h3>\n<p>PHPCPD on yksinkertainen kirjasto, joka analysoi koodisi havaitakseen p\u00e4\u00e4llekk\u00e4isen koodin \u2013 joka yleens\u00e4 tulee kopioimalla ja liitt\u00e4m\u00e4ll\u00e4 jostain muualta (vaikka se olisikin koodipohjasi). Kirjaston ideana on v\u00e4hent\u00e4\u00e4 p\u00e4\u00e4llekk\u00e4ist\u00e4 koodia.<\/p>\n<\/p>\n<p>Ja se ei tule paljon <a href=\"https:\/\/github.com\/sebastianbergmann\/phpcpd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4m\u00e4n<\/a> selvemm\u00e4ksi :<\/p>\n<blockquote>\n<p>phpcpd on kopioi\/liit\u00e4 ilmaisin (CPD) PHP-koodille.<\/p>\n<\/blockquote>\n<p>Toisin sanoen se on yksi askel auttaa sinua pit\u00e4m\u00e4\u00e4n sen KUIVANA.<\/p>\n<h3><a href=\"https:\/\/github.com\/povils\/phpmnd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMND<\/a><\/h3>\n<p>Jos yksi tavoitteistamme koodissamme on tehd\u00e4 siit\u00e4 mahdollisimman luettavissa muille, jotka voivat poimia koodikannan, haaroittaa sen tai osallistua siihen (etenkin avoimessa l\u00e4hdekoodissa), meid\u00e4n on varmistettava, ett\u00e4 kaikki arvoillamme on merkityksellisi\u00e4 arvoja.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166044-61e78d8e8d7a0.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-166044-61e78d8e8d7a0.png\" alt=\"Kirjastot WordPress-laajennuksille, osa 2\"><\/a><\/p>\n<p>On t\u00e4rke\u00e4\u00e4 k\u00e4ytt\u00e4\u00e4 numeroita, jotka ovat meille merkityksellisi\u00e4, mutta jotka eiv\u00e4t kuvaa koodin toimintaa, mutta emme tee sit\u00e4, eik\u00f6 niin? Tai ehk\u00e4 se olen vain min\u00e4.<\/p>\n<p>Mutta siin\u00e4 <a href=\"https:\/\/github.com\/povils\/phpmnd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMND<\/a> tulee peliin.<\/p>\n<blockquote>\n<p>phpmnd on ty\u00f6kalu, joka auttaa sinua tunnistamaan taikanumerot PHP-koodissa. Oletusarvoisesti 0 ja 1 eiv\u00e4t ole maagisia lukuja.<\/p>\n<\/blockquote>\n<p>Se on yksinkertainen kirjasto, mutta sit\u00e4 k\u00e4ytet\u00e4\u00e4n yhdess\u00e4 t\u00e4m\u00e4n viestin kirjastojen kanssa, ja edellinen viesti voi auttaa jatkuvasti parantamaan arkistoihin lis\u00e4\u00e4m\u00e4si koodin laatua.<\/p>\n<h2>Viel\u00e4 yksi ty\u00f6kalusarja<\/h2>\n<p>Kuten edellisess\u00e4 viestiss\u00e4 mainittiin, tavoitteena, jonka eteen ty\u00f6skentelen, on se, kuinka sis\u00e4llytt\u00e4\u00e4 n\u00e4m\u00e4 kaikki <code>composer.json<\/code>tiedostoon, jota voit k\u00e4ytt\u00e4\u00e4 projektissasi.<\/p>\n<p>Muista my\u00f6s, ett\u00e4 projektista riippuen saatat joutua valitsemaan kirjaston version k\u00e4ytt\u00e4m\u00e4si PHP-version perusteella.<\/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>Toinen postaus WordPress-laajennusten kirjastoista, joita tiimini ja min\u00e4 k\u00e4yt\u00e4mme ty\u00f6st\u00e4ess\u00e4mme laadukkaita ratkaisuja muille.<\/p>\n","protected":false},"author":1,"featured_media":166045,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[1018,719],"tags":[1166],"class_list":["post-229803","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hyodyllisia-sivustoja","category-kehittaejae","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229803","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=229803"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229803\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/166045"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=229803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=229803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=229803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}