{"id":231010,"date":"2022-12-25T12:50:00","date_gmt":"2022-12-25T09:50:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231010"},"modified":"2022-12-25T12:50:51","modified_gmt":"2022-12-25T09:50:51","slug":"baettre-wordpress-kod-composer-lock-filen","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/baettre-wordpress-kod-composer-lock-filen\/","title":{"rendered":"B\u00e4ttre WordPress-kod: Composer Lock-filen"},"content":{"rendered":"\n<p>Innan vi avslutar v\u00e5r diskussion om Composer har vi en viktig sak kvar att diskutera: <strong>leverant\u00f6rskatalogen<\/strong> (och i f\u00f6rl\u00e4ngningen Composer-l\u00e5sfilen).<\/p>\n<p>Specifikt m\u00e5ste vi prata om varf\u00f6r vi inte beh\u00f6ver \u00f6verl\u00e5ta <strong>leverant\u00f6rskatalogen<\/strong> till f\u00f6rvaret utan hur v\u00e5ra bidragsgivare kan vara s\u00e4kra p\u00e5 att de har den senaste versionen av programvaran som beh\u00f6vs f\u00f6r att fungera med v\u00e5r kodbas.<\/p>\n<p>Att anv\u00e4nda kodkvalitetsverktyg f\u00f6r att <a href=\"https:\/\/tommcfarlin.com\/tag\/better-wordpress-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">skriva b\u00e4ttre WordPress-kod<\/a> \u00e4r viktigt, ja, men att f\u00f6rst\u00e5 hur man korrekt hanterar beroenden och v\u00e5rt arkiv \u00e4r ocks\u00e5 viktigt. S\u00e5 innan vi tittar p\u00e5 n\u00e4mnda verktyg, l\u00e5t oss granska l\u00e5sfilen, vilken roll den spelar och varf\u00f6r vi inte beh\u00f6ver \u00f6verf\u00f6ra <strong>leverant\u00f6rskatalogen<\/strong> till v\u00e5rt arkiv.<\/p>\n<h2>B\u00e4ttre WordPress-kod med Composer Lock-filen<\/h2>\n<p>F\u00f6r de som arbetar med WordPress \u2013 och kanske i andra PHP-baserade ramverk och grunder (jag vet inte riktigt eftersom jag tenderar att inte arbeta med dem) \u2013 finns det ett beroende av Composer, vilket \u00e4r bra.<\/p>\n<p>Detta kan ocks\u00e5 leda till att man vill beg\u00e5 hela leverant\u00f6rskatalogens k\u00e4llkontroll, vilket inte \u00e4r bra.<\/p>\n<p>Som n\u00e4mndes <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/verktyg-foer-att-skriva-baettre-wordpress-kod-composer\/\" title=\"i f\u00f6rra inl\u00e4gget\">i f\u00f6rra inl\u00e4gget<\/a> :<\/p>\n<blockquote>\n<p>Och jag rekommenderar inte att du kontrollerar leverant\u00f6rskatalogen i ditt f\u00f6rr\u00e5d. Det kan bli en enorm katalog senare, och det kan undergr\u00e4va hela syftet med Composer.<\/p>\n<\/blockquote>\n<p>S\u00e5 hur kan vi se till att vi inte \u00f6verf\u00f6r filer i on\u00f6dan (och d\u00e4rmed \u00f6kar storleken p\u00e5 v\u00e5rt arkiv) till arkivet samtidigt som vi ser till att v\u00e5ra bidragsgivare anv\u00e4nder samma version av programvaran som vi?<\/p>\n<h3>\u00d6nskan att beg\u00e5 leverant\u00f6rskatalogen<\/h3>\n<p>F\u00f6r de av er som har k\u00f6rt Composer och \u00e4r bekanta med att \u00e5tminstone se <strong>leverant\u00f6rskatalogen<\/strong>, d\u00e5 \u00e4r du sannolikt van vid att se flera kataloger med beroenden som \u00e4r installerade.<\/p>\n<p>Och de \u00e4r anv\u00e4ndbara; annars hade du inte tagit med dem, eller hur?<\/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=\"B\u00e4ttre WordPress-kod: Composer Lock-filen\"><\/a><\/p>\n<p>Men h\u00e4r \u00e4r grejen med <strong>leverant\u00f6rskatalogen\u00a0<\/strong>: \u00e4ven om du bara har n\u00e5gra f\u00e5 beroenden installerade med ditt projekt, kan sj\u00e4lva filstorleken vara stor. Och detta kan bli \u00e4nnu st\u00f6rre n\u00e4r du har m\u00e5nga beroenden.<\/p>\n<p>Oavsett vilket verkar det vara vettigt att beg\u00e5 detta till k\u00e4llkontroll, eller hur? Vi vill se till att alla har samma version av programvaran som vi anv\u00e4nder och vi vill se till att de inte beh\u00f6ver hantera Composer.<\/p>\n<p>Det finns dock ett annat s\u00e4tt. Och det h\u00e5ller v\u00e5rt f\u00f6rr\u00e5d litet samtidigt som det ser till att versionerna av v\u00e5ra beroenden h\u00e5lls synkroniserade med de som klona f\u00f6rvaret, f\u00f6rbinder sig till f\u00f6rvaret eller f\u00f6r n\u00e5got kontinuerligt integrationsverktyg som anv\u00e4nder f\u00f6rvaret.<\/p>\n<h3>F\u00f6rst\u00e5 l\u00e5sfilen<\/h3>\n<p>Innan jag pratar om leverant\u00f6rskatalogen vill jag ber\u00f6ra en annan viktig aspekt av Composer: l\u00e5sfilen. Det vill s\u00e4ga, om du k\u00f6r <strong>installations-<\/strong> eller <strong>uppdateringskommandot<\/strong> i din terminal, kommer du att se en l\u00e5sfil genererad tillsammans med <strong>leverant\u00f6rskatalogen<\/strong>.<\/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=\"B\u00e4ttre WordPress-kod: Composer Lock-filen\"><\/a><\/p>\n<p>Vad \u00e4r denna fil?<\/p>\n<p>Det f\u00f6reg\u00e5ende inl\u00e4gget visade ett exempel p\u00e5 en konfigurationsfil. En av de saker som den h\u00e4r filen ocks\u00e5 till\u00e5ter oss att g\u00f6ra \u00e4r att definiera tredjepartsbibliotek, eller beroenden, som vi kan anv\u00e4nda i v\u00e5ra projekt.<\/p>\n<p>Jag har pratat om detta <a href=\"https:\/\/tommcfarlin.com\/tag\/libraries-for-wordpress-plugins\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">i andra inl\u00e4gg<\/a> (och vi kan titta p\u00e5 detta lite mer senare i den h\u00e4r serien). Men det \u00e4r h\u00e4r l\u00e5sfilen kommer in i bilden.<\/p>\n<p>Kort sagt, l\u00e5sfilen inneh\u00e5ller alltid information om versionen \u2013 den <strong>exakta<\/strong> versionen \u2013 av de beroenden som anv\u00e4nds med projektet senaste g\u00e5ngen <strong>installationen<\/strong> eller <strong>uppdateringen<\/strong> k\u00f6rdes.<\/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=\"B\u00e4ttre WordPress-kod: Composer Lock-filen\"><\/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\">Fr\u00e5n manualen<\/a> :<\/p>\n<blockquote>\n<p>N\u00e4r Composer har installerat klart, skriver den alla paket och de exakta versionerna av dem som den laddade ner till filen composer.lock, vilket l\u00e5ser projektet till de specifika versionerna.<\/p>\n<p>Du b\u00f6r \u00f6verf\u00f6ra filen composer.lock till din projektrepo s\u00e5 att alla personer som arbetar med projektet \u00e4r l\u00e5sta till samma versioner av beroenden (mer nedan).<\/p>\n<\/blockquote>\n<p>M\u00e5let \u00e4r att se till att alla k\u00f6r samma version av projektets beroenden \u2013 inte \u00e4ldre versioner, inte nyare versioner \u2013 utan samma version.<\/p>\n<p>S\u00e5 n\u00e4r du k\u00f6r <strong>composer installera<\/strong> n\u00e4r en l\u00e5sfil ing\u00e5r i f\u00f6rvaret kommer att anv\u00e4nda den version av programvaran som definieras i l\u00e5sfilen.<\/p>\n<p>Och detta s\u00e4kerst\u00e4ller att alla k\u00f6r samma version av varje beroende och d\u00e4rmed kan f\u00f6rhindra behovet av att \u00f6verl\u00e5ta leverant\u00f6rskatalogen till k\u00e4llkontroll.<\/p>\n<h2>Skriver kod f\u00f6r h\u00f6gre kvalitet<\/h2>\n<p>S\u00e5 vart g\u00e5r vi h\u00e4rifr\u00e5n?<\/p>\n<p>Nu n\u00e4r vi f\u00f6rst\u00e5r hur man anv\u00e4nder Composer och hur man anv\u00e4nder l\u00e5sfilen, kan vi b\u00f6rja prata om faktiska beroenden som hj\u00e4lper till att f\u00f6rb\u00e4ttra v\u00e5r kodkvalitet.<\/p>\n<p>Och n\u00e4r vi pratar om att skriva kod av h\u00f6gre kvalitet finns det verktyg som \u00e4r gjorda just f\u00f6r det. S\u00e5 i de kommande inl\u00e4ggen ska vi titta p\u00e5 n\u00e5gra av dem.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00f6rst\u00e5 hur Composer-l\u00e5sfilen hindrar oss fr\u00e5n att beh\u00f6va \u00f6verf\u00f6ra leverant\u00f6rskatalogen till v\u00e5rt arkiv.<\/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":[838,848,901,724,868],"tags":[1173],"class_list":["post-231010","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guide-foer-nyboerjare","category-handledningar","category-koda","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=231010"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231010\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/236343"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=231010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=231010"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=231010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}