{"id":231608,"date":"2022-12-25T12:26:00","date_gmt":"2022-12-25T09:26:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231608"},"modified":"2022-12-25T12:26:26","modified_gmt":"2022-12-25T09:26:26","slug":"melhor-codigo-wordpress-o-arquivo-de-bloqueio-do-compositor","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/melhor-codigo-wordpress-o-arquivo-de-bloqueio-do-compositor\/","title":{"rendered":"Melhor c\u00f3digo WordPress: o arquivo de bloqueio do compositor"},"content":{"rendered":"\n<p>Antes de encerrar nossa discuss\u00e3o sobre o Composer, temos uma coisa importante para discutir: o diret\u00f3rio do <strong>fornecedor<\/strong> (e, por extens\u00e3o, o arquivo de bloqueio do Composer).<\/p>\n<p>Especificamente, precisamos falar sobre por que n\u00e3o precisamos confirmar o diret\u00f3rio do <strong>fornecedor<\/strong> no reposit\u00f3rio, mas como nossos contribuidores podem ter certeza de que t\u00eam a vers\u00e3o mais recente do software necess\u00e1rio para trabalhar com nossa base de c\u00f3digo.<\/p>\n<p>Usar ferramentas de qualidade de c\u00f3digo para <a href=\"https:\/\/tommcfarlin.com\/tag\/better-wordpress-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">escrever melhor c\u00f3digo WordPress<\/a> \u00e9 importante, sim, mas entender como gerenciar adequadamente as depend\u00eancias e nosso reposit\u00f3rio tamb\u00e9m \u00e9 importante. Portanto, antes de examinar esses utilit\u00e1rios, vamos revisar o arquivo de bloqueio, o papel que ele desempenha e por que n\u00e3o precisamos confirmar o diret\u00f3rio do <strong>fornecedor<\/strong> em nosso reposit\u00f3rio.<\/p>\n<h2>Melhor c\u00f3digo WordPress com o arquivo de bloqueio do compositor<\/h2>\n<p>Para aqueles que trabalham com WordPress \u2013 e talvez em outros frameworks e funda\u00e7\u00f5es baseados em PHP (eu realmente n\u00e3o sei, j\u00e1 que costumo n\u00e3o trabalhar com eles) \u2013 h\u00e1 uma depend\u00eancia do Composer, o que \u00e9 uma coisa boa.<\/p>\n<p>Isso tamb\u00e9m pode levar a querer comprometer todo o controle de origem do diret\u00f3rio do fornecedor, o que n\u00e3o \u00e9 uma coisa boa.<\/p>\n<p>Conforme mencionado <a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/ferramentas-para-escrever-um-codigo-wordpress-melhor-composer\/\" title=\"no post anterior\">no post anterior<\/a> :<\/p>\n<blockquote>\n<p>E eu n\u00e3o recomendo verificar o diret\u00f3rio do fornecedor em seu reposit\u00f3rio. Isso pode se tornar um diret\u00f3rio enorme mais tarde, e pode minar todo o prop\u00f3sito do Composer.<\/p>\n<\/blockquote>\n<p>Ent\u00e3o, como podemos ter certeza de que n\u00e3o estamos submetendo arquivos desnecessariamente (e, portanto, inflando o tamanho do nosso reposit\u00f3rio) para o reposit\u00f3rio ao mesmo tempo, garantindo que nossos contribuidores estejam usando a mesma vers\u00e3o do software que n\u00f3s?<\/p>\n<h3>O desejo de comprometer o diret\u00f3rio de fornecedores<\/h3>\n<p>Para aqueles que executaram o Composer e est\u00e3o familiarizados com pelo menos ver o diret\u00f3rio do <strong>fornecedor<\/strong>, provavelmente est\u00e3o acostumados a ver v\u00e1rios diret\u00f3rios de depend\u00eancias que est\u00e3o instalados.<\/p>\n<p>E eles s\u00e3o \u00fateis; caso contr\u00e1rio, voc\u00ea n\u00e3o os teria inclu\u00eddo, certo?<\/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=\"Melhor c\u00f3digo WordPress: o arquivo de bloqueio do compositor\"><\/a><\/p>\n<p>Mas aqui est\u00e1 a coisa sobre o\u00a0 diret\u00f3rio do <strong>fornecedor\u00a0<\/strong>: mesmo que voc\u00ea tenha apenas algumas depend\u00eancias instaladas com seu projeto, o pr\u00f3prio tamanho do arquivo pode ser grande. E isso pode ser ainda maior quando voc\u00ea tem muitas depend\u00eancias.<\/p>\n<p>Independentemente disso, comprometer isso com o controle de origem parece fazer sentido, certo? Queremos garantir que todos tenham a mesma vers\u00e3o do software que estamos usando e queremos garantir que eles n\u00e3o precisem lidar com o Composer.<\/p>\n<p>H\u00e1 outra maneira, no entanto. E mant\u00e9m nosso reposit\u00f3rio pequeno ao mesmo tempo em que garante que as vers\u00f5es de nossas depend\u00eancias sejam mantidas em sincronia com aqueles que clonam o reposit\u00f3rio, fazem commit no reposit\u00f3rio ou para qualquer utilit\u00e1rio de integra\u00e7\u00e3o cont\u00ednua que use o reposit\u00f3rio.<\/p>\n<h3>Entendendo o arquivo de bloqueio<\/h3>\n<p>Antes de falar sobre o diret\u00f3rio do fornecedor, quero abordar outro aspecto importante do Composer: o arquivo de bloqueio. Ou seja, se voc\u00ea executar o comando <strong>install<\/strong> ou <strong>update<\/strong> em seu terminal, ver\u00e1 um arquivo de bloqueio gerado junto com o diret\u00f3rio do <strong>fornecedor<\/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=\"Melhor c\u00f3digo WordPress: o arquivo de bloqueio do compositor\"><\/a><\/p>\n<p>O que \u00e9 este arquivo?<\/p>\n<p>O post anterior mostrou um arquivo de configura\u00e7\u00e3o de exemplo. Uma das coisas que esse arquivo tamb\u00e9m nos permite fazer \u00e9 definir bibliotecas de terceiros, ou depend\u00eancias, que podemos usar em nossos projetos.<\/p>\n<p>J\u00e1 falei sobre isso <a href=\"https:\/\/tommcfarlin.com\/tag\/libraries-for-wordpress-plugins\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">em outros posts<\/a> (e podemos ver isso um pouco mais adiante nesta s\u00e9rie). Mas \u00e9 aqui que o arquivo de bloqueio entra em jogo.<\/p>\n<p>Resumindo, o arquivo de bloqueio sempre cont\u00e9m informa\u00e7\u00f5es sobre a vers\u00e3o \u2013 a vers\u00e3o <strong>exata<\/strong> \u2013 das depend\u00eancias que est\u00e3o sendo usadas com o projeto na \u00faltima vez que a <strong>instala\u00e7\u00e3o<\/strong> ou <strong>atualiza\u00e7\u00e3o<\/strong> foi executada.<\/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=\"Melhor c\u00f3digo WordPress: o arquivo de bloqueio do compositor\"><\/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\">Do manual<\/a> :<\/p>\n<blockquote>\n<p>Quando o Composer termina de instalar, ele grava todos os pacotes e as vers\u00f5es exatas deles que baixou para o arquivo composer.lock, bloqueando o projeto para essas vers\u00f5es espec\u00edficas.<\/p>\n<p>Voc\u00ea deve enviar o arquivo composer.lock para o reposit\u00f3rio do seu projeto para que todas as pessoas que trabalham no projeto sejam bloqueadas para as mesmas vers\u00f5es de depend\u00eancias (mais abaixo).<\/p>\n<\/blockquote>\n<p>O objetivo \u00e9 garantir que todos estejam executando a mesma vers\u00e3o das depend\u00eancias do projeto \u2013 nem vers\u00f5es mais antigas, nem vers\u00f5es mais recentes \u2013 mas a mesma vers\u00e3o.<\/p>\n<p>Portanto, quando voc\u00ea executar o <strong>composer install<\/strong> quando um arquivo de bloqueio for inclu\u00eddo no reposit\u00f3rio, usar\u00e1 a vers\u00e3o do software conforme definido no arquivo de bloqueio.<\/p>\n<p>E isso garante que todos estejam executando a mesma vers\u00e3o de cada depend\u00eancia e, portanto, pode evitar a necessidade de confirmar o diret\u00f3rio do fornecedor para o controle do c\u00f3digo-fonte.<\/p>\n<h2>Escrevendo c\u00f3digo de alta qualidade<\/h2>\n<p>Ent\u00e3o, para onde vamos a partir daqui?<\/p>\n<p>Agora que entendemos como usar o Composer e como usar o arquivo de bloqueio, podemos come\u00e7ar a falar sobre depend\u00eancias reais que ajudam a melhorar a qualidade do nosso c\u00f3digo.<\/p>\n<p>E quando falamos em escrever c\u00f3digo de maior qualidade, existem utilit\u00e1rios feitos exatamente para isso. Ent\u00e3o, nos pr\u00f3ximos posts, vamos ver alguns deles.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Entender como o arquivo de bloqueio do Composer nos impede de precisar confirmar o diret\u00f3rio do fornecedor em nosso reposit\u00f3rio.<\/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":[898,722,837,846,867],"tags":[1170],"class_list":["post-231608","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-guia-para-iniciantes","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=231608"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231608\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/236343"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=231608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=231608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=231608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}