{"id":231612,"date":"2022-12-25T12:47:00","date_gmt":"2022-12-25T09:47:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231612"},"modified":"2022-12-25T12:48:38","modified_gmt":"2022-12-25T09:48:38","slug":"parempi-wordpress-koodi-saeveltaejaen-lukitustiedosto","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/parempi-wordpress-koodi-saeveltaejaen-lukitustiedosto\/","title":{"rendered":"Parempi WordPress-koodi: s\u00e4velt\u00e4j\u00e4n lukitustiedosto"},"content":{"rendered":"\n<p>Ennen kuin lopetamme keskustelumme Composerista, meill\u00e4 on viel\u00e4 yksi t\u00e4rke\u00e4 asia keskusteltavana: <strong>toimittajahakemisto<\/strong> (ja laajennukselta my\u00f6s Composer-lukkotiedosto).<\/p>\n<p>Erityisesti meid\u00e4n on puhuttava siit\u00e4, miksi meid\u00e4n ei tarvitse sitoa <strong>toimittajahakemistoa<\/strong> arkistoon, mutta kuinka avustajamme voivat olla varmoja siit\u00e4, ett\u00e4 heill\u00e4 on uusin versio ohjelmistosta, joka tarvitaan toimimaan koodipohjamme kanssa.<\/p>\n<p>Koodin laatuty\u00f6kalujen k\u00e4ytt\u00e4minen <a href=\"https:\/\/tommcfarlin.com\/tag\/better-wordpress-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">paremman WordPress-koodin kirjoittamiseen<\/a> on kyll\u00e4 \u200b\u200bt\u00e4rke\u00e4\u00e4, mutta my\u00f6s riippuvuuksien ja arkiston hallinnan ymm\u00e4rt\u00e4minen on t\u00e4rke\u00e4\u00e4. Joten ennen kuin tarkastelemme mainittuja apuohjelmia, tarkastellaan lukitustiedostoa, sen roolia ja miksi meid\u00e4n ei tarvitse sitoa <strong>toimittajahakemistoa<\/strong> arkistoon.<\/p>\n<h2>Parempi WordPress-koodi s\u00e4velt\u00e4j\u00e4n lukitustiedostolla<\/h2>\n<p>Ne, jotka ty\u00f6skentelev\u00e4t WordPressin kanssa \u2013 ja ehk\u00e4 muissa PHP-pohjaisissa kehyksiss\u00e4 ja perustaissa (en todellakaan tied\u00e4, koska en yleens\u00e4 ty\u00f6skentele niiden kanssa) \u2013 luottavat Composeriin, mik\u00e4 on hyv\u00e4 asia.<\/p>\n<p>T\u00e4m\u00e4 voi my\u00f6s johtaa siihen, ett\u00e4 halutaan sitoa koko toimittajahakemiston l\u00e4hdehallinta, mik\u00e4 ei ole hyv\u00e4 asia.<\/p>\n<p>Kuten <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/tyoekalut-paremman-wordpress-koodin-kirjoittamiseen-saeveltaejae\/\" title=\"edellisess\u00e4 viestiss\u00e4\">edellisess\u00e4 viestiss\u00e4<\/a> mainittiin :<\/p>\n<blockquote>\n<p>En suosittele myyj\u00e4hakemiston tarkistamista arkistoon. Siit\u00e4 voi my\u00f6hemmin tulla valtava hakemisto, ja se voi heikent\u00e4\u00e4 Composerin koko tarkoitusta.<\/p>\n<\/blockquote>\n<p>Joten kuinka voimme varmistaa, ettemme sido tiedostoja tarpeettomasti (ja siten lis\u00e4\u00e4 arkistomme kokoa) arkistoon samalla kun varmistamme, ett\u00e4 avustajamme k\u00e4ytt\u00e4v\u00e4t samaa ohjelmistoversiota kuin me?<\/p>\n<h3>Halu sitoutua myyj\u00e4hakemistoon<\/h3>\n<p>Ne teist\u00e4, jotka ovat k\u00e4ytt\u00e4neet Composeria ja tiet\u00e4v\u00e4t ainakin <strong>toimittajahakemiston<\/strong>, olet todenn\u00e4k\u00f6isesti tottunut n\u00e4kem\u00e4\u00e4n useita asennettujen riippuvuuksien hakemistoja.<\/p>\n<p>Ja ne ovat hy\u00f6dyllisi\u00e4; muuten et olisi sis\u00e4llytt\u00e4nyt niit\u00e4, eik\u00f6 niin?<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160092-61e705582e682.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-160092-61e705582e682.png\" alt=\"Parempi WordPress-koodi: s\u00e4velt\u00e4j\u00e4n lukitustiedosto\"><\/a><\/p>\n<p>Mutta t\u00e4ss\u00e4 on asia <strong>toimittajahakemistosta\u00a0<\/strong>: vaikka sinulla olisi vain muutama riippuvuus asennettuna projektiisi, itse tiedostokoko voi olla suuri. Ja t\u00e4m\u00e4 voi olla viel\u00e4 suurempi, kun sinulla on paljon riippuvuuksia.<\/p>\n<p>Siit\u00e4 huolimatta t\u00e4m\u00e4n sitominen l\u00e4hteen hallintaan n\u00e4ytt\u00e4\u00e4 j\u00e4rkev\u00e4lt\u00e4, eik\u00f6? Haluamme varmistaa, ett\u00e4 kaikilla on sama ohjelmistoversio, jota k\u00e4yt\u00e4mme, ja haluamme varmistaa, ett\u00e4 heid\u00e4n ei tarvitse olla tekemisiss\u00e4 Composerin kanssa.<\/p>\n<p>On kuitenkin toinenkin tapa. Ja se pit\u00e4\u00e4 arkistomme pienen\u00e4 varmistaen samalla, ett\u00e4 riippuvuutemme versiot pidet\u00e4\u00e4n synkronoituna niiden kanssa, jotka kloonaavat arkiston, sitoutuvat arkistoon tai mink\u00e4 tahansa jatkuvan integroinnin apuohjelman, joka k\u00e4ytt\u00e4\u00e4 arkistoa.<\/p>\n<h3>Lukitustiedoston ymm\u00e4rt\u00e4minen<\/h3>\n<p>Ennen kuin puhun toimittajahakemistosta, haluan koskettaa toista t\u00e4rke\u00e4\u00e4 Composer-n\u00e4k\u00f6kohtaa: lukkotiedostoa. Eli jos suoritat <strong>asennus-<\/strong> tai <strong>p\u00e4ivityskomennon<\/strong> p\u00e4\u00e4tteess\u00e4si, n\u00e4et lukkotiedoston, joka luodaan yhdess\u00e4 <strong>toimittajahakemiston<\/strong> kanssa .<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160092-61e7055c190d2.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-160092-61e7055c190d2.png\" alt=\"Parempi WordPress-koodi: s\u00e4velt\u00e4j\u00e4n lukitustiedosto\"><\/a><\/p>\n<p>Mik\u00e4 t\u00e4m\u00e4 tiedosto on?<\/p>\n<p>Edellisess\u00e4 viestiss\u00e4 oli esimerkkim\u00e4\u00e4ritystiedosto. Yksi asia, jonka t\u00e4m\u00e4n tiedoston avulla voimme my\u00f6s tehd\u00e4, on m\u00e4\u00e4ritt\u00e4\u00e4 kolmannen osapuolen kirjastot tai riippuvuudet, joita voimme k\u00e4ytt\u00e4\u00e4 projekteissamme.<\/p>\n<p>Olen puhunut t\u00e4st\u00e4 <a href=\"https:\/\/tommcfarlin.com\/tag\/libraries-for-wordpress-plugins\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">muissa viesteiss\u00e4<\/a> (ja voimme tarkastella t\u00e4t\u00e4 hieman my\u00f6hemmin t\u00e4ss\u00e4 sarjassa). Mutta t\u00e4ss\u00e4 lukitustiedosto tulee peliin.<\/p>\n<p>Lyhyesti sanottuna lukitustiedosto sis\u00e4lt\u00e4\u00e4 aina tiedot niiden riippuvuuksien versiosta \u2013 <strong>tarkan<\/strong> version \u2013, joita k\u00e4ytet\u00e4\u00e4n projektin kanssa, kun <strong>asennus<\/strong> tai <strong>p\u00e4ivitys viimeksi<\/strong> suoritettiin.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160092-61e7056059bac.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-160092-61e7056059bac.png\" alt=\"Parempi WordPress-koodi: s\u00e4velt\u00e4j\u00e4n lukitustiedosto\"><\/a><\/p>\n<p><a href=\"https:\/\/getcomposer.org\/doc\/01-basic-usage.md#installing-without-composer-lock\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">K\u00e4sikirjasta<\/a> :<\/p>\n<blockquote>\n<p>Kun Composer on suorittanut asennuksen, se kirjoittaa kaikki lataamansa paketit ja niiden tarkat versiot composer.lock-tiedostoon lukiten projektin kyseisiin versioihin.<\/p>\n<p>Sinun tulee sitoa composer.lock-tiedosto projektivarastoon, jotta kaikki projektin parissa ty\u00f6skentelev\u00e4t ihmiset ovat lukittuina samoihin riippuvuuksien versioihin (lis\u00e4tietoja alla).<\/p>\n<\/blockquote>\n<p>Tavoitteena on varmistaa, ett\u00e4 jokaisella on k\u00e4yt\u00f6ss\u00e4 sama versio projektin riippuvuuksista \u2013 ei vanhempia tai uudempia versioita \u2013 mutta sama versio.<\/p>\n<p>Joten kun suoritat <strong>s\u00e4velt\u00e4j\u00e4n asennusta<\/strong>, kun arkistoon sis\u00e4ltyy lukitustiedosto, se k\u00e4ytt\u00e4\u00e4 lukkotiedostossa m\u00e4\u00e4ritetty\u00e4 ohjelmistoversiota.<\/p>\n<p>Ja t\u00e4m\u00e4 varmistaa, ett\u00e4 kaikki k\u00e4ytt\u00e4v\u00e4t samaa versiota kustakin riippuvuudesta, ja n\u00e4in voidaan est\u00e4\u00e4 tarve sitoa toimittajahakemisto l\u00e4hdehallintaan.<\/p>\n<h2>Korkeamman laatukoodin kirjoittaminen<\/h2>\n<p>Joten minne t\u00e4st\u00e4 l\u00e4hdet\u00e4\u00e4n?<\/p>\n<p>Nyt kun ymm\u00e4rr\u00e4mme kuinka k\u00e4ytt\u00e4\u00e4 Composeria ja kuinka k\u00e4ytt\u00e4\u00e4 lukitustiedostoa, voimme alkaa puhua todellisista riippuvuuksista, jotka auttavat parantamaan koodimme laatua.<\/p>\n<p>Ja kun puhumme korkealaatuisemman koodin kirjoittamisesta, on apuohjelmia, jotka on tehty juuri sit\u00e4 varten. Joten seuraavissa viesteiss\u00e4 aiomme tarkastella joitain niist\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>Ymm\u00e4rt\u00e4minen, kuinka Composer-lukkotiedosto est\u00e4\u00e4 meit\u00e4 joutumasta sitomaan toimittajahakemistoa arkistoon.<\/p>\n","protected":false},"author":1,"featured_media":236343,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,834,843,864],"tags":[1166],"class_list":["post-231612","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-opas-aloittelijoille","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231612","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=231612"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231612\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/236343"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=231612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=231612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=231612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}