{"id":231805,"date":"2022-12-25T12:37:00","date_gmt":"2022-12-25T09:37:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231805"},"modified":"2022-12-25T12:41:22","modified_gmt":"2022-12-25T09:41:22","slug":"codice-wordpress-migliore-il-file-di-blocco-del-compositore","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/codice-wordpress-migliore-il-file-di-blocco-del-compositore\/","title":{"rendered":"Codice WordPress migliore: il file di blocco del compositore"},"content":{"rendered":"\n<p>Prima di concludere la nostra discussione su Composer, abbiamo ancora una cosa importante da discutere: la directory del <strong>fornitore<\/strong> (e, per estensione, il file di blocco di Composer).<\/p>\n<p>In particolare, dobbiamo parlare del motivo per cui non \u00e8 necessario eseguire il commit della directory del <strong>fornitore<\/strong> nel repository, ma di come i nostri contributori possono essere sicuri di disporre dell&#8217;ultima versione del software necessaria per funzionare con la nostra base di codice.<\/p>\n<p>L&#8217;utilizzo di strumenti di qualit\u00e0 del codice per <a href=\"https:\/\/tommcfarlin.com\/tag\/better-wordpress-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">scrivere un codice WordPress migliore<\/a> \u00e8 importante, s\u00ec, ma \u00e8 importante anche capire come gestire correttamente le dipendenze e il nostro repository. Quindi, prima di esaminare tali utilit\u00e0, esaminiamo il file di blocco, il ruolo che svolge e perch\u00e9 non \u00e8 necessario eseguire il commit della directory del <strong>fornitore<\/strong> nel nostro repository.<\/p>\n<h2>Codice WordPress migliore con il file di blocco del compositore<\/h2>\n<p>Per coloro che lavorano con WordPress \u2013 e forse in altri framework e fondazioni basati su PHP (non lo so proprio perch\u00e9 tendo a non lavorare con loro) \u2013 c&#8217;\u00e8 una dipendenza da Composer, che \u00e8 una buona cosa.<\/p>\n<p>Ci\u00f2 pu\u00f2 anche portare a voler impegnare l&#8217;intero controllo del codice sorgente della directory del fornitore, il che non \u00e8 una buona cosa.<\/p>\n<p>Come accennato <a href=\"https:\/\/wordpress.mediadoma.com\/it\/strumenti-per-scrivere-un-codice-wordpress-migliore-composer\/\" title=\"nel post precedente\">nel post precedente<\/a> :<\/p>\n<blockquote>\n<p>E non consiglio di controllare la directory del fornitore nel tuo repository. Questo pu\u00f2 diventare un&#8217;enorme directory in seguito e pu\u00f2 minare l&#8217;intero scopo di Composer.<\/p>\n<\/blockquote>\n<p>Quindi, come possiamo assicurarci di non inviare file inutilmente (e quindi gonfiare le dimensioni del nostro repository) nel repository assicurandoci che i nostri contributori utilizzino la nostra stessa versione del software?<\/p>\n<h3>Il desiderio di impegnare l&#8217;elenco dei fornitori<\/h3>\n<p>Per quelli di voi che hanno eseguito Composer e hanno familiarit\u00e0 con almeno la visualizzazione della directory del <strong>fornitore<\/strong>, \u00e8 probabile che siate abituati a vedere pi\u00f9 directory di dipendenze installate.<\/p>\n<p>E sono utili; altrimenti non li avresti inclusi, giusto?<\/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=\"Codice WordPress migliore: il file di blocco del compositore\"><\/a><\/p>\n<p>Ma ecco il problema della directory del <strong>fornitore\u00a0<\/strong>: anche se hai solo alcune dipendenze installate con il tuo progetto, la dimensione del file stesso pu\u00f2 essere grande. E questo pu\u00f2 essere ancora pi\u00f9 grande quando hai molte dipendenze.<\/p>\n<p>Indipendentemente da ci\u00f2, impegnarsi nel controllo del codice sorgente sembra avere senso, giusto? Vogliamo assicurarci che tutti abbiano la stessa versione del software che stiamo utilizzando e vogliamo assicurarci che non debbano avere a che fare con Composer.<\/p>\n<p>C&#8217;\u00e8 un altro modo, per\u00f2. E mantiene piccolo il nostro repository assicurandoci anche che le versioni delle nostre dipendenze siano sincronizzate con coloro che clonano il repository, si impegnano nel repository o per qualsiasi utilit\u00e0 di integrazione continua che utilizza il repository.<\/p>\n<h3>Comprendere il file di blocco<\/h3>\n<p>Prima di parlare della directory del fornitore, voglio toccare un altro aspetto importante di Composer: il file di blocco. Cio\u00e8, se esegui il comando <strong>install<\/strong> o <strong>update<\/strong> nel tuo terminale, vedrai un file di blocco generato insieme alla directory del <strong>fornitore<\/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=\"Codice WordPress migliore: il file di blocco del compositore\"><\/a><\/p>\n<p>Cos&#8217;\u00e8 questo file?<\/p>\n<p>Il post precedente mostrava un file di configurazione di esempio. Una delle cose che questo file ci consente anche di fare \u00e8 definire librerie di terze parti, o dipendenze, che possiamo utilizzare nei nostri progetti.<\/p>\n<p>Ne ho parlato <a href=\"https:\/\/tommcfarlin.com\/tag\/libraries-for-wordpress-plugins\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">in altri post<\/a> (e possiamo esaminarlo un po&#8217; pi\u00f9 avanti in questa serie). Ma \u00e8 qui che entra in gioco il file di blocco.<\/p>\n<p>In breve, il file di blocco contiene sempre informazioni sulla versione \u2013 la versione <strong>esatta<\/strong> \u2013 delle dipendenze utilizzate con il progetto l&#8217;ultima volta che \u00e8 stata eseguita l&#8217; <strong>installazione<\/strong> o l&#8217; <strong>aggiornamento<\/strong>.<\/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=\"Codice WordPress migliore: il file di blocco del compositore\"><\/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\">Dal manuale<\/a> :<\/p>\n<blockquote>\n<p>Quando Composer ha terminato l&#8217;installazione, scrive tutti i pacchetti e le versioni esatte di essi che ha scaricato nel file composer.lock, bloccando il progetto su quelle versioni specifiche.<\/p>\n<p>Dovresti eseguire il commit del file composer.lock nel repository del tuo progetto in modo che tutte le persone che lavorano al progetto siano bloccate sulle stesse versioni delle dipendenze (pi\u00f9 sotto).<\/p>\n<\/blockquote>\n<p>L&#8217;obiettivo \u00e8 assicurarsi che tutti eseguano la stessa versione delle dipendenze del progetto, non versioni precedenti, n\u00e9 versioni pi\u00f9 recenti, ma la stessa versione.<\/p>\n<p>Pertanto, quando si esegue <strong>Composer, l&#8217;installazione<\/strong> quando un file di blocco \u00e8 incluso nel repository utilizzer\u00e0 la versione del software definita nel file di blocco.<\/p>\n<p>E questo garantisce che tutti eseguano la stessa versione di ciascuna dipendenza e quindi pu\u00f2 prevenire la necessit\u00e0 di eseguire il commit della directory del fornitore al controllo del codice sorgente.<\/p>\n<h2>Scrivere codice di qualit\u00e0 superiore<\/h2>\n<p>Allora dove andiamo da qui?<\/p>\n<p>Ora che abbiamo capito come utilizzare Composer e come utilizzare il file di blocco, possiamo iniziare a parlare delle effettive dipendenze che aiutano a migliorare la qualit\u00e0 del nostro codice.<\/p>\n<p>E quando parliamo di scrivere codice di qualit\u00e0 superiore, ci sono utilit\u00e0 fatte proprio per questo. Quindi nei prossimi post ne esamineremo alcuni.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comprendere come il file di blocco Composer ci impedisce di dover eseguire il commit della directory del fornitore nel nostro repository.<\/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":[896,835,720,844,865],"tags":[1168],"class_list":["post-231805","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-guida-per-principianti","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/231805","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=231805"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/231805\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/236343"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=231805"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=231805"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=231805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}