{"id":231549,"date":"2022-12-23T12:45:00","date_gmt":"2022-12-23T09:45:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231549"},"modified":"2022-12-07T10:53:34","modified_gmt":"2022-12-07T07:53:34","slug":"paremman-wordpress-koodin-kirjoittaminen-johdanto","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/paremman-wordpress-koodin-kirjoittaminen-johdanto\/","title":{"rendered":"Paremman WordPress-koodin kirjoittaminen: Johdanto"},"content":{"rendered":"\n<p>Muutaman viime vuoden aikana olen puhunut paljon koodin laadun luonteesta ja erilaisista ty\u00f6kaluista, prosesseista ja kirjastoista, joita suosittelen WordPressin koodin kirjoittamiseen.<\/p>\n<p>Olen my\u00f6s avoin, ett\u00e4 suurin osa tekem\u00e4st\u00e4ni ty\u00f6st\u00e4 on taustakehityst\u00e4. T\u00e4m\u00e4 tarkoittaa, ett\u00e4 ty\u00f6skentelen p\u00e4\u00e4asiassa WordPress-laajennusten parissa k\u00e4ytt\u00e4en olio-ohjelmointia, enk\u00e4 ty\u00f6skentele paljoa mallipohjien tai k\u00e4ytt\u00f6liittym\u00e4teknologioiden kanssa.<\/p>\n<p>Se on valinnanvaraa, ja olen todella tyytyv\u00e4inen siihen, miss\u00e4 olen. Mutta poikkean.<\/p>\n<p>Jos teet saman asian (tai harrastuksena), kyse ei ole vain koodin kirjoittamisesta. Kyse on oikeasta ty\u00f6kalusta.<\/p>\n<p>Olen viitannut muutamaan n\u00e4ist\u00e4 aiemmissa viesteiss\u00e4, mutta en ole k\u00e4ynyt l\u00e4pi k\u00e4ytt\u00e4mi\u00e4ni ty\u00f6kaluja ja asetuksia, joita k\u00e4yt\u00e4n aina kun olen rakentamassa ratkaisua itselleni tai jollekin muulle.<\/p>\n<p>Ei ainakaan organisoidusti.<\/p>\n<p>T\u00e4ss\u00e4 sarjassa aion tehd\u00e4 juuri n\u00e4in:<\/p>\n<p>Aion kattaa k\u00e4ytt\u00e4m\u00e4ni ty\u00f6kalut, k\u00e4ytt\u00e4m\u00e4ni kirjastot ja kuinka k\u00e4yt\u00e4n niit\u00e4.<\/p>\n<p>Viime k\u00e4dess\u00e4 tavoitteena on, ett\u00e4 ne teist\u00e4, jotka lukevat t\u00e4m\u00e4n, voivat sis\u00e4llytt\u00e4\u00e4 ne p\u00e4ivitt\u00e4iseen ty\u00f6h\u00f6ns\u00e4 kirjoittaakseen parempaa koodia.<\/p>\n<h2>Parempi WordPress-koodi<\/h2>\n<p>Ennen kuin siirrymme pidemm\u00e4lle, annan ensin vastuuvapauslausekkeen:<\/p>\n<p>Edellinen sarja, jonka olen t\u00e4h\u00e4n menness\u00e4 tehnyt, on ollut pitk\u00e4. T\u00e4m\u00e4 sarja ei tule. Aion keskitty\u00e4 lyhyempiin, keskittyneempiin sarjoihin ja postauksiin jonkin aikaa.<\/p>\n<p>Sanoin, ett\u00e4 t\u00e4ss\u00e4 sarjassa oletetaan, ett\u00e4 tunnet IDE:si ja tunnet pintapuolisesti <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a>. K\u00e4yt\u00e4n Visual Studio Codea (ja olen k\u00e4sitellyt sit\u00e4 <a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">melko v\u00e4h\u00e4n<\/a> ).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6475f0f.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-160420-61e70a6475f0f.png\" alt=\"Paremman WordPress-koodin kirjoittaminen: Johdanto\" ><\/a><\/p>\n<p>Aion k\u00e4yd\u00e4 l\u00e4pi prosessin alusta alkaen siihen pisteeseen, ett\u00e4 laajennus on valmis rullaamaan. Ei, t\u00e4m\u00e4 ei tarkoita, ett\u00e4 kirjoitamme laajennusta. Mutta menn\u00e4\u00e4n aivan reunaan asti.<\/p>\n<p>Joten t\u00e4m\u00e4n sanottua, aloitetaan.<\/p>\n<h3>Composerin asentaminen<\/h3>\n<p>Niille, jotka ovat lukeneet t\u00e4t\u00e4 blogia pitk\u00e4\u00e4n, tied\u00e4tte, ett\u00e4 olen k\u00e4sitellyt t\u00e4t\u00e4 aiemmin; En kuitenkaan koskaan halua olettaa mit\u00e4\u00e4n t\u00e4llaista, kun on kyse niist\u00e4, jotka ovat \u00e4skett\u00e4in liittyneet tai saattavat lukea t\u00e4st\u00e4 ensimm\u00e4ist\u00e4 kertaa.<\/p>\n<p>Jos olet jo m\u00e4\u00e4ritt\u00e4nyt, voit ohittaa sen. muuten jatketaan.<\/p>\n<h4>Mit\u00e4 globaali asennus tarkoittaa?<\/h4>\n<p>Sovelluksen asentaminen maailmanlaajuisesti tarkoittaa, ett\u00e4 se on k\u00e4ytett\u00e4viss\u00e4 kaikkialla j\u00e4rjestelm\u00e4ss\u00e4si. Eli sill\u00e4 ei ole v\u00e4li\u00e4, oletko Documents-hakemistossasi vai projektihakemistossa, voit k\u00e4ytt\u00e4\u00e4 apuohjelmaa komentorivilt\u00e4.<\/p>\n<p>Ja tietysti, voimme k\u00e4ytt\u00e4\u00e4 Composeria projektikohtaisesti (ja kannatan sit\u00e4), mutta joskus on t\u00e4rke\u00e4\u00e4 asentaa Composer my\u00f6s maailmanlaajuisesti.<\/p>\n<p>Ja sit\u00e4 me t\u00e4\u00e4ll\u00e4 aiomme tehd\u00e4.<\/p>\n<h3>Kaksi tapaa asentaa Composer<\/h3>\n<h4>Homebrew&#8217;n k\u00e4ytt\u00f6<\/h4>\n<p>Jos k\u00e4yt\u00e4t <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Homebrew&#8217;ta<\/a>, Composer on mahdollista asentaa Homebrew&#8217;n avulla. Se on luultavasti helpompi asentaa ja p\u00e4ivitt\u00e4\u00e4.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a682be91.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-160420-61e70a682be91.png\" alt=\"Paremman WordPress-koodin kirjoittaminen: Johdanto\" ><\/a><\/p>\n<p>T\u00e4m\u00e4 tietysti edellytt\u00e4\u00e4, ett\u00e4 Homebrew on asennettu. Jos et ja olet kiinnostunut, anna <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-00-install-homebrew-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4m\u00e4 komento<\/a> :<\/p>\n<pre><code>$ \/usr\/bin\/ruby -e \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/master\/install)\"<\/code><\/pre>\n<p>Huomaa kuitenkin, ett\u00e4 jos p\u00e4\u00e4t\u00e4t valita t\u00e4m\u00e4n reitin, sinun on tunnettava Homebrewissa muutamia asioita. Ja vaikka olen fani, se ei todellakaan ole osa t\u00e4t\u00e4 viesti\u00e4. Olen k\u00e4sitellyt sit\u00e4 perusteellisesti <a href=\"https:\/\/tommcfarlin.com\/?s=homebrew\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">muissa viesteiss\u00e4<\/a> (ja voit aina lukea <a href=\"https:\/\/docs.brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentaatiota<\/a> ).<\/p>\n<p>Sitten voit asentaa Composerin Homebrew:n avulla antamalla <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-01-brew-install-composer-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seuraavan komennon<\/a> :<\/p>\n<p>Ei todellakaan, eik\u00f6?<\/p>\n<h4>Composerin manuaalinen asennus<\/h4>\n<p>Toinen tapa asentaa Composer on ladata t\u00e4m\u00e4 tiedosto ja sijoittaa se sitten yleiseen polkuun.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6bcc142.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-160420-61e70a6bcc142.png\" alt=\"Paremman WordPress-koodin kirjoittaminen: Johdanto\" ><\/a><\/p>\n<p>Eli kun olet ladannut <a href=\"https:\/\/getcomposer.org\/composer.phar\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4m\u00e4n tiedoston<\/a> (huomaa, ett\u00e4 linkki on todellinen lataus, joten kiinnit\u00e4 huomiota sen sijoittamiseen!), voit sitten suorittaa <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-02-install-composer-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4m\u00e4n komennon<\/a> terminaalista:<\/p>\n<pre><code>$ mv composer.phar \/usr\/local\/bin\/composer<\/code><\/pre>\n<p>Ja t\u00e4m\u00e4 siirt\u00e4\u00e4 Composerin maailmanlaajuiselle polullesi.<\/p>\n<h2>Tarkista s\u00e4velt\u00e4j\u00e4n asennus<\/h2>\n<p>Kun olet suorittanut jonkin yll\u00e4 olevista vaiheista, sinun pit\u00e4isi pysty\u00e4 testaamaan Composer-versiota suorittamalla <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-03-composer-v-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seuraava<\/a> komento p\u00e4\u00e4tteess\u00e4si:<\/p>\n<p>Ja sinun pit\u00e4isi n\u00e4hd\u00e4 jotain t\u00e4llaista:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6e69b61.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-160420-61e70a6e69b61.png\" alt=\"Paremman WordPress-koodin kirjoittaminen: Johdanto\" ><\/a><\/p>\n<p>Jos et, tarkista yll\u00e4 olevat vaiheet.<\/p>\n<h2>Ty\u00f6kaluihin<\/h2>\n<p>Yksi satunnaisista kysymyksist\u00e4 koskien s\u00e4velt\u00e4j\u00e4\u00e4 on miksi? Ja vaikka voisin vastata t\u00e4h\u00e4n t\u00e4ss\u00e4 postauksessa, muista, ett\u00e4 pyrin pit\u00e4m\u00e4\u00e4n n\u00e4m\u00e4 ja t\u00e4m\u00e4 sarja hieman ytimekk\u00e4\u00e4mp\u00e4n\u00e4 kuin edellinen sarja.<\/p>\n<p>Joten yrit\u00e4n vastata siihen lyhyesti seuraavassa postauksessa sek\u00e4 k\u00e4sitell\u00e4 muutaman ty\u00f6kalun k\u00e4yt\u00f6n aloittamista, mink\u00e4 j\u00e4lkeen alamme n\u00e4hd\u00e4, kuinka sill\u00e4 voi olla suurempi rooli WordPress-laajennusten kehitt\u00e4misess\u00e4.<\/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>T\u00e4m\u00e4 sarja kattaa ty\u00f6kalut ja kirjastot, joita k\u00e4yt\u00e4n paremman WordPress-koodin kirjoittamiseen.<\/p>\n","protected":false},"author":1,"featured_media":236179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,843,803,864],"tags":[1166],"class_list":["post-231549","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-opetusohjelmia","category-php-5","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231549","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=231549"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231549\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/236179"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=231549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=231549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=231549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}