{"id":231227,"date":"2022-12-25T12:47:00","date_gmt":"2022-12-25T09:47:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231227"},"modified":"2022-12-25T12:48:29","modified_gmt":"2022-12-25T09:48:29","slug":"mejor-codigo-de-wordpress-el-archivo-de-bloqueo-del-compositor","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/mejor-codigo-de-wordpress-el-archivo-de-bloqueo-del-compositor\/","title":{"rendered":"Mejor c\u00f3digo de WordPress: el archivo de bloqueo del compositor"},"content":{"rendered":"\n<p>Antes de concluir nuestra discusi\u00f3n sobre Composer, nos queda una cosa importante por discutir: el directorio de <strong>proveedores<\/strong> (y por extensi\u00f3n, el archivo de bloqueo de Composer).<\/p>\n<p>Espec\u00edficamente, necesitamos hablar sobre por qu\u00e9 no necesitamos enviar el directorio de <strong>proveedores<\/strong> al repositorio, sino c\u00f3mo nuestros colaboradores pueden estar seguros de que tienen la \u00faltima versi\u00f3n del software necesario para trabajar con nuestra base de c\u00f3digo.<\/p>\n<p>Usar herramientas de calidad de c\u00f3digo para <a href=\"https:\/\/tommcfarlin.com\/tag\/better-wordpress-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">escribir mejor c\u00f3digo de WordPress<\/a> es importante, s\u00ed, pero tambi\u00e9n es importante comprender c\u00f3mo administrar adecuadamente las dependencias y nuestro repositorio. Entonces, antes de ver dichas utilidades, revisemos el archivo de bloqueo, el papel que desempe\u00f1a y por qu\u00e9 no necesitamos enviar el directorio de <strong>proveedores<\/strong> a nuestro repositorio.<\/p>\n<h2>Mejor c\u00f3digo de WordPress con el archivo de bloqueo Composer<\/h2>\n<p>Para aquellos que trabajan con WordPress, y quiz\u00e1s en otros marcos y bases basados \u200b\u200ben PHP (realmente no lo s\u00e9, ya que tiendo a no trabajar con ellos), existe una confianza en Composer, lo cual es algo bueno.<\/p>\n<p>Esto tambi\u00e9n puede llevar a querer comprometer todo el control de fuente del directorio de proveedores, lo cual no es bueno.<\/p>\n<p>Como se mencion\u00f3 <a href=\"https:\/\/wordpress.mediadoma.com\/es\/herramientas-para-escribir-mejor-codigo-de-wordpress-composer\/\" title=\"en la publicaci\u00f3n anterior\">en la publicaci\u00f3n anterior<\/a> :<\/p>\n<blockquote>\n<p>Y no recomiendo consultar el directorio de proveedores en su repositorio. Eso puede convertirse en un directorio enorme m\u00e1s tarde y puede socavar el prop\u00f3sito completo de Composer.<\/p>\n<\/blockquote>\n<p>Entonces, \u00bfc\u00f3mo podemos asegurarnos de que no estamos enviando archivos innecesariamente (y, por lo tanto, inflando el tama\u00f1o de nuestro repositorio) al repositorio mientras nos aseguramos de que nuestros colaboradores est\u00e9n usando la misma versi\u00f3n del software que nosotros?<\/p>\n<h3>El deseo de comprometer el directorio de proveedores<\/h3>\n<p>Para aquellos de ustedes que han ejecutado Composer y est\u00e1n familiarizados con al menos ver el directorio de <strong>proveedores<\/strong>, es probable que est\u00e9n acostumbrados a ver m\u00faltiples directorios de dependencias que est\u00e1n instaladas.<\/p>\n<p>Y son \u00fatiles; de lo contrario, no los habr\u00edas incluido, \u00bfverdad?<\/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=\"Mejor c\u00f3digo de WordPress: el archivo de bloqueo del compositor\"><\/a><\/p>\n<p>Pero esto es lo que pasa con el\u00a0 directorio de <strong>proveedores\u00a0<\/strong>: incluso si solo tiene algunas dependencias instaladas con su proyecto, el tama\u00f1o del archivo en s\u00ed puede ser grande. Y esto puede ser a\u00fan mayor cuando tiene muchas dependencias.<\/p>\n<p>De todos modos, enviar esto al control de fuente parece tener sentido, \u00bfverdad? Queremos asegurarnos de que todos tengan la misma versi\u00f3n del software que estamos usando y queremos asegurarnos de que no tengan que lidiar con Composer.<\/p>\n<p>Sin embargo, hay otra manera. Y mantiene nuestro repositorio peque\u00f1o al mismo tiempo que se asegura de que las versiones de nuestras dependencias se mantengan sincronizadas con aquellos que clonan el repositorio, se comprometen con el repositorio o para cualquier utilidad de integraci\u00f3n continua que use el repositorio.<\/p>\n<h3>Comprender el archivo de bloqueo<\/h3>\n<p>Antes de hablar sobre el directorio de proveedores, quiero referirme a otro aspecto importante de Composer: el archivo de bloqueo. Es decir, si ejecuta el comando de <strong>instalaci\u00f3n<\/strong> o <strong>actualizaci\u00f3n<\/strong> en su terminal, ver\u00e1 un archivo de bloqueo generado junto con el directorio del <strong>proveedor<\/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=\"Mejor c\u00f3digo de WordPress: el archivo de bloqueo del compositor\"><\/a><\/p>\n<p>\u00bfQu\u00e9 es este archivo?<\/p>\n<p>La publicaci\u00f3n anterior mostr\u00f3 un archivo de configuraci\u00f3n de ejemplo. Una de las cosas que este archivo tambi\u00e9n nos permite hacer es definir bibliotecas de terceros, o dependencias, que podemos usar en nuestros proyectos.<\/p>\n<p>He hablado de esto <a href=\"https:\/\/tommcfarlin.com\/tag\/libraries-for-wordpress-plugins\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">en otras publicaciones<\/a> (y podemos ver esto un poco m\u00e1s adelante en esta serie). Pero aqu\u00ed es donde entra en juego el archivo de bloqueo.<\/p>\n<p>En resumen, el archivo de bloqueo siempre contiene informaci\u00f3n sobre la versi\u00f3n, la versi\u00f3n <strong>exacta<\/strong>, de las dependencias que se est\u00e1n utilizando con el proyecto la \u00faltima vez que se ejecut\u00f3 la <strong>instalaci\u00f3n<\/strong> o <strong>actualizaci\u00f3n<\/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=\"Mejor c\u00f3digo de WordPress: el archivo de bloqueo del 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\">Del manual<\/a> :<\/p>\n<blockquote>\n<p>Cuando Composer ha terminado de instalarse, escribe todos los paquetes y las versiones exactas de los mismos que descarg\u00f3 en el archivo composer.lock, bloqueando el proyecto en esas versiones espec\u00edficas.<\/p>\n<p>Debe confirmar el archivo composer.lock en el repositorio de su proyecto para que todas las personas que trabajan en el proyecto est\u00e9n bloqueadas en las mismas versiones de dependencias (m\u00e1s informaci\u00f3n a continuaci\u00f3n).<\/p>\n<\/blockquote>\n<p>El objetivo es asegurarse de que todos ejecuten la misma versi\u00f3n de las dependencias del proyecto, no versiones anteriores, ni versiones m\u00e1s nuevas, sino la misma versi\u00f3n.<\/p>\n<p>Entonces, cuando ejecuta la <strong>instalaci\u00f3n de composer<\/strong> cuando se incluye un archivo de bloqueo en el repositorio, usar\u00e1 la versi\u00f3n del software tal como se define en el archivo de bloqueo.<\/p>\n<p>Y esto garantiza que todos est\u00e9n ejecutando la misma versi\u00f3n de cada dependencia y, por lo tanto, puede evitar la necesidad de enviar el directorio de proveedores al control de c\u00f3digo fuente.<\/p>\n<h2>Escribir c\u00f3digo de mayor calidad<\/h2>\n<p>Entonces, \u00bfd\u00f3nde vamos desde aqu\u00ed?<\/p>\n<p>Ahora que entendemos c\u00f3mo usar Composer y c\u00f3mo usar el archivo de bloqueo, podemos comenzar a hablar sobre las dependencias reales que ayudan a mejorar la calidad de nuestro c\u00f3digo.<\/p>\n<p>Y cuando hablamos de escribir c\u00f3digo de mayor calidad, existen utilidades hechas exactamente para eso. As\u00ed que en las pr\u00f3ximas publicaciones, vamos a ver algunos de ellos.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comprender c\u00f3mo el archivo de bloqueo de Composer evita que necesitemos enviar el directorio de proveedores a nuestro repositorio.<\/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":[892,716,831,840,861],"tags":[1172],"class_list":["post-231227","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-guia-para-principiantes","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=231227"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231227\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/236343"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=231227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=231227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=231227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}