{"id":229360,"date":"2022-11-10T13:26:00","date_gmt":"2022-11-10T10:26:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229360"},"modified":"2022-11-10T13:26:24","modified_gmt":"2022-11-10T10:26:24","slug":"bibliotecas-para-plugins-de-wordpress-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/bibliotecas-para-plugins-de-wordpress-parte-1\/","title":{"rendered":"Bibliotecas para plugins de WordPress, Parte 1"},"content":{"rendered":"\n<p>Cuanto m\u00e1s trabaje con WordPress, especialmente si emplea herramientas como <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> y similares, es m\u00e1s probable que encuentre ciertas bibliotecas, herramientas y cosas similares que forman la base de los proyectos en los que trabaja.<\/p>\n<p>A veces puede encontrarlos al buscar en el c\u00f3digo de otras personas, tal vez los encuentre al navegar por GitHub, o tal vez <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">alguien con<\/a> <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">quien<\/a> trabaje le sugiera una biblioteca (o algunas) dependiendo de un proyecto.<\/p>\n<p>Personalmente, he tenido la experiencia de todo lo anterior, y cuanto m\u00e1s trabajo en la creaci\u00f3n de soluciones para m\u00ed o para otros, m\u00e1s me encuentro estableciendo la misma base para cada proyecto (que suele ser un complemento de alg\u00fan tipo) .<\/p>\n<h2>Bibliotecas para complementos de WordPress<\/h2>\n<p>Con ese fin, pens\u00e9 que podr\u00eda valer la pena compartir las bibliotecas que uso cuando construyo complementos de WordPress. El contenido se distribuir\u00e1 en algunas publicaciones para que cada una sea breve y enfocada, pero tal vez encuentre algo que no haya usado anteriormente (o que mejore su uso actual).<\/p>\n<h3><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Unidad PHP<\/a><\/h3>\n<p>Cualquiera que haya escrito c\u00f3digo en cualquier lenguaje de programaci\u00f3n probablemente est\u00e9 familiarizado con cualquier tipo de biblioteca *Unit. En resumen, es una forma de escribir pruebas unitarias f\u00e1cilmente.<\/p>\n<p>Desde <a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la p\u00e1gina de inicio del proyecto<\/a> :<\/p>\n<blockquote>\n<p>PHPUnit es un marco de prueba orientado al programador para PHP. Es una instancia de la arquitectura xUnit para marcos de pruebas unitarias.<\/p>\n<\/blockquote>\n<p>No soy alguien que necesariamente se suscriba a una cobertura de c\u00f3digo del 100% (y ese es un tema para otra publicaci\u00f3n), pero si va a escribir pruebas unitarias, entonces esta es la biblioteca de facto para probar su c\u00f3digo.<\/p>\n<h3><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a><\/h3>\n<p>A lo largo de este a\u00f1o, podr\u00eda decirse que <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> se ha convertido en mi biblioteca favorita (aunque se ha mejorado con bibliotecas adicionales que cubrir\u00e9 a lo largo de esta serie de publicaciones).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166075-61e78ddea0549.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-166075-61e78ddea0549.png\" alt=\"Bibliotecas para plugins de WordPress, Parte 1\"><\/a><\/p>\n<p>Ya he hablado de ello en otros posts. Aunque se describe a s\u00ed mismo como una &quot;herramienta de calidad de c\u00f3digo&quot;, realmente no puede evitar ver los beneficios hasta que lo conecta para ver su c\u00f3digo antes de intentar enviarlo a un repositorio.<\/p>\n<p>La descripci\u00f3n m\u00e1s larga es:<\/p>\n<blockquote>\n<p>Si las pruebas fallan, no podr\u00e1 confirmar los cambios. Esta pr\u00e1ctica herramienta no solo mejorar\u00e1 su base de c\u00f3digo, sino que tambi\u00e9n ense\u00f1ar\u00e1 a sus compa\u00f1eros de trabajo a escribir mejor c\u00f3digo siguiendo las mejores pr\u00e1cticas que han determinado como equipo.<\/p>\n<\/blockquote>\n<p>Y, al igual que si hubiera estado empleando cualquier monitor de <a href=\"https:\/\/wordpress.mediadoma.com\/es\/uso-de-los-psr-frente-a-los-estandares-de-codificacion-de-wordpress\/\" title=\"est\u00e1ndares de codificaci\u00f3n\">est\u00e1ndares de codificaci\u00f3n<\/a> en su IDE, esta es una de esas cosas que puede ser frustrante de usar al principio.<\/p>\n<p>Pero a medida que lo aprende, se vuelve m\u00e1s f\u00e1cil saber qu\u00e9 va a marcar, por lo que autom\u00e1ticamente comienza a escribir c\u00f3digo que tiene un mayor nivel de calidad.<\/p>\n<h3><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a><\/h3>\n<p><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a> (abreviatura de PHP Mess Detector) funciona bien junto con GrumPHP, ya que puede procesar su c\u00f3digo antes de enviarlo a un repositorio.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166075-61e78de324f34.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-166075-61e78de324f34.png\" alt=\"Bibliotecas para plugins de WordPress, Parte 1\"><\/a><\/p>\n<p>El proyecto se describe a s\u00ed mismo como:<\/p>\n<blockquote>\n<p>Toma una base de c\u00f3digo fuente PHP dada y busca varios problemas potenciales dentro de esa fuente.<\/p>\n<\/blockquote>\n<p>Al igual que con muchas bibliotecas similares, esta en particular puede configurar un conjunto de reglas para que pueda activar y desactivar f\u00e1cilmente las cosas en funci\u00f3n de lo que usted o su equipo prefieran.<\/p>\n<h3><a href=\"https:\/\/github.com\/nikic\/PHP-Parser\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Analizador de PHP<\/a><\/h3>\n<p>La idea de tener una configuraci\u00f3n de biblioteca de analizador de PHP para analizar su c\u00f3digo parece un poco meta, \u00bfverdad? Quiero decir, tiene el tiempo de ejecuci\u00f3n de PHP haciendo eso, y muchos IDE tambi\u00e9n lo hacen, pero esto funciona de una manera ligeramente diferente.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166075-61e78de6eec7f.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-166075-61e78de6eec7f.png\" alt=\"Bibliotecas para plugins de WordPress, Parte 1\"><\/a><\/p>\n<p>Desde el repositorio:<\/p>\n<blockquote>\n<p>Este es un analizador de PHP 5.2 a PHP 7.1 escrito en PHP. Su prop\u00f3sito es simplificar el an\u00e1lisis y la manipulaci\u00f3n del c\u00f3digo est\u00e1tico.<\/p>\n<\/blockquote>\n<p>Para aquellos que est\u00e1n familiarizados con el funcionamiento de los lenguajes de programaci\u00f3n (y, por lo tanto, de las gram\u00e1ticas), la idea de hacer un <a href=\"https:\/\/en.wikipedia.org\/wiki\/Static_program_analysis\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">an\u00e1lisis est\u00e1tico<\/a> del c\u00f3digo tendr\u00e1 sentido.<\/p>\n<p>Independientemente, esta es otra biblioteca m\u00e1s que ayuda a mejorar la calidad del c\u00f3digo al reducir la complejidad del c\u00f3digo.<\/p>\n<h2>M\u00e1s por venir<\/h2>\n<p>Al final de la serie, compartir\u00e9 c\u00f3mo incorporar todo esto en un <code>composer.json<\/code>archivo que puede usar en su proyecto.<\/p>\n<p>Cuando est\u00e1 trabajando en una soluci\u00f3n para un cliente, es posible que tenga que modificar las versiones de cada una de estas herramientas, pero encontrar\u00e1 que la mayor\u00eda de ellas ofrecen soporte desde PHP5.6 hasta PHP7.1.<\/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>La primera publicaci\u00f3n de una serie sobre las bibliotecas de complementos de WordPress que mi equipo y yo usamos cuando trabajamos en soluciones de alta calidad para otros.<\/p>\n","protected":false},"author":1,"featured_media":166076,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[716,914,1015,861],"tags":[1172],"class_list":["post-229360","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollador","category-otro","category-sitios-utiles","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229360","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=229360"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229360\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/166076"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=229360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=229360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=229360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}