{"id":229300,"date":"2022-11-08T10:43:00","date_gmt":"2022-11-08T07:43:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229300"},"modified":"2022-11-09T06:22:21","modified_gmt":"2022-11-09T03:22:21","slug":"uso-de-los-psr-frente-a-los-estandares-de-codificacion-de-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/uso-de-los-psr-frente-a-los-estandares-de-codificacion-de-wordpress\/","title":{"rendered":"Uso de los PSR (frente a los est\u00e1ndares de codificaci\u00f3n de WordPress)"},"content":{"rendered":"\n<p>En este punto, no s\u00e9 cu\u00e1ntos art\u00edculos he escrito sobre la importancia de los <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">est\u00e1ndares de codificaci\u00f3n de WordPress<\/a> (suficientes para vincularlos <a href=\"https:\/\/tommcfarlin.com\/psrs-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqu\u00ed<\/a>, <a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqu\u00ed<\/a> y <a href=\"https:\/\/tommcfarlin.com\/wordpress-coding-standards-for-the-planet\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqu\u00ed<\/a>, supongo, que cuenta para algo).<\/p>\n<p>Pero despu\u00e9s de hacer suficientes proyectos para clientes y <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">trabajar con desarrolladores<\/a> que son mucho m\u00e1s inteligentes y est\u00e1n m\u00e1s familiarizados con las herramientas avanzadas que yo, estoy en un lugar donde estoy optando por <a href=\"http:\/\/www.php-fig.org\/psr\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">comenzar a usar<\/a> PSR en el desarrollo de WordPress.<\/p>\n<p>Oh, el drama, \u00bfverdad?<\/p>\n<p>Hablando en serio. Hay razones para esto, y hay momentos en los que creo que los est\u00e1ndares de codificaci\u00f3n de WordPress a\u00fan deber\u00edan usarse, pero r\u00e1pidamente me estoy convenciendo de que construir cualquier proyecto moderno sobre WordPress deber\u00eda usar herramientas PHP m\u00e1s modernas (que mencionar\u00e9 brevemente m\u00e1s adelante).<\/p>\n<h2>Uso de PSR en el desarrollo de WordPress<\/h2>\n<p>Publicaciones como esta a menudo dan lugar a alg\u00fan debate o respuesta dram\u00e1tica dentro de WordPress que no es mi intenci\u00f3n ni es algo que creo que es necesario. Para ser honesto, conozco un buen n\u00famero <a href=\"https:\/\/twitter.com\/GaryJ\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">de<\/a> <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">otros<\/a> <a href=\"https:\/\/twitter.com\/rarst\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">desarrolladores<\/a> <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">que<\/a> han hecho esto hace mucho tiempo, hablaron de ello, avanzaron y continuaron teniendo \u00e9xito tanto en su negocio como en sus proyectos de pasatiempos.<\/p>\n<p>Pero dado que he hablado tanto sobre uno versus el otro, pens\u00e9 que val\u00eda la pena compartir mi opini\u00f3n sobre por qu\u00e9 estoy optando por hacer este cambio ahora y la raz\u00f3n detr\u00e1s de esto.<\/p>\n<h3>1 Paridad con la comunidad PHP<\/h3>\n<p>Durante el \u00faltimo a\u00f1o m\u00e1s o menos, y realmente solo en los \u00faltimos meses de este a\u00f1o, me he acostumbrado m\u00e1s a:<\/p>\n<ul>\n<li>amigos desarrolladores orientados a PHP m\u00e1s experimentados que respaldan herramientas que esperan que se adopten los PSR,<\/li>\n<li>el uso de <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/issues\/604\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\/\/@codingStandardsIgnoreStart y \/\/@codingStandardsIgnoreEnd<\/a> en mi c\u00f3digo,<\/li>\n<li>conjuntos de reglas personalizados para mis proyectos en funci\u00f3n de los entornos en los que est\u00e1n implementados,<\/li>\n<li>y m\u00e1s.<\/li>\n<\/ul>\n<p>En \u00faltima instancia, se trata de querer mantener la paridad (o un poco) con la gran comunidad de PHP en general mientras se escribe c\u00f3digo legible basado en est\u00e1ndares sobre WordPress. Y tambi\u00e9n me gustar\u00eda usar algunas otras herramientas y versiones m\u00e1s recientes de las herramientas existentes (que discutir\u00e9 m\u00e1s adelante en esta publicaci\u00f3n).<\/p>\n<h3>2 problemas con los entornos modernos<\/h3>\n<p>Al momento de escribir esta publicaci\u00f3n, <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> (que se requiere para ejecutar los est\u00e1ndares de codificaci\u00f3n de WordPress) se encuentra en la versi\u00f3n <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/tree\/3.0.2\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">3.0.2<\/a>. Sin embargo, existen problemas de compatibilidad con PHPCS y con los est\u00e1ndares de codificaci\u00f3n de WordPress. <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\/issues\/718\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Espec\u00edficamente<\/a> :<\/p>\n<blockquote>\n<p>La nueva versi\u00f3n de PHP CodeSniffer tiene algunas caracter\u00edsticas interesantes, pero introduce cambios importantes que significan que los est\u00e1ndares de codificaci\u00f3n de WordPress no son compatibles.<\/p>\n<\/blockquote>\n<p>Para ser claros (y debido a la naturaleza del software), es cuesti\u00f3n de tiempo antes de que se solucione. Pero si est\u00e1 trabajando en una base de c\u00f3digo y est\u00e1 utilizando Composer y los est\u00e1ndares de codificaci\u00f3n de WordPress, deber\u00e1 configurar expl\u00edcitamente la versi\u00f3n de PHP CodeSniffer en lugar de la versi\u00f3n m\u00e1s reciente actualmente.<\/p>\n<p>Adem\u00e1s, he experimentado problemas con clientes en los que no adoptar los PSR en el desarrollo de WordPress ha resultado en un comportamiento extra\u00f1o al implementar el c\u00f3digo. Tal vez se podr\u00eda argumentar que deber\u00edan ajustar el entorno, pero si est\u00e1n trabajando para tener las herramientas m\u00e1s modernas disponibles para las personas que las usan, \u00bfpor qu\u00e9 retroceder?<\/p>\n<h3>3 Compatibilidad con herramientas modernas<\/h3>\n<p>Finalmente, hay una serie de herramientas modernas que no he podido usar, y mucho menos aprender, debido a lo que es y lo que no es compatible con la naturaleza del control de versiones.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166244-61e790be9cd6b.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-166244-61e790be9cd6b.png\" alt=\"Uso de los PSR (frente a los est\u00e1ndares de codificaci\u00f3n de WordPress)\" ><\/a><\/p>\n<p>Por ejemplo, <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">est\u00e1bamos<\/a> usando <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> en un proyecto reciente que tiene soporte para una variedad de herramientas pero no pudimos usar, digamos, <a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a> debido a la falta de adopci\u00f3n de los PSR. En lo que a m\u00ed respecta:<\/p>\n<ul>\n<li>Quiero mejorar continuamente mis habilidades como desarrollador (y, en este contexto, como desarrollador de PHP),<\/li>\n<li>la falta de soporte para herramientas m\u00e1s modernas me pone en un patr\u00f3n de espera que de otro modo no experimentar\u00eda,<\/li>\n<li>Quiero seguir trabajando con WordPress pero hacerlo con un flujo de trabajo m\u00e1s moderno<\/li>\n<\/ul>\n<p>Y en este momento, no usar los PSR est\u00e1 creando una brecha entre lo que est\u00e1 haciendo el resto de la comunidad de PHP y lo que est\u00e1 haciendo WordPress. As\u00ed que me gustar\u00eda seguir adelante mientras sigo trabajando en proyectos adem\u00e1s del software que todav\u00eda disfruto usando.<\/p>\n<h2>\u00bfQu\u00e9 pasa con los est\u00e1ndares de codificaci\u00f3n de WordPress?<\/h2>\n<p>Entonces, \u00bfqu\u00e9 significa esto sobre los est\u00e1ndares de codificaci\u00f3n de WordPress y las publicaciones anteriores? Nada en realidad. A mi modo de ver: los est\u00e1ndares de codificaci\u00f3n de WordPress deben usarse cada vez que trabaje en WordPress Core o algo que vaya a estar estrechamente integrado en \u00e9l.<\/p>\n<p>Pero si est\u00e1 trabajando en algo que se asienta sobre WordPress o algo que usa WordPress como base y puede usar los PSR en el desarrollo de WordPress junto con herramientas que pueden ayudar a aumentar la calidad del c\u00f3digo base que est\u00e1 construyendo.<\/p>\n<p>Entonces, al menos por ahora, esa es la perspectiva que voy a adoptar. Estoy ansioso por ver c\u00f3mo se desarrolla en los pr\u00f3ximos meses. Y, en cuanto a todo lo dem\u00e1s que he compartido, compartir\u00e9 los aspectos de hacer este cambio.<\/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>Despu\u00e9s de suficientes proyectos trabajando con desarrolladores m\u00e1s inteligentes, estoy en un lugar para comenzar a usar PSR en el desarrollo de WordPress.<\/p>\n","protected":false},"author":1,"featured_media":166245,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[716,840,861],"tags":[1172],"class_list":["post-229300","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollador","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229300","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=229300"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229300\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/166245"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=229300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=229300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=229300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}