{"id":229710,"date":"2022-11-08T10:51:00","date_gmt":"2022-11-08T07:51:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229710"},"modified":"2022-11-09T16:02:34","modified_gmt":"2022-11-09T13:02:34","slug":"usando-os-psrs-versus-os-padroes-de-codificacao-do-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/usando-os-psrs-versus-os-padroes-de-codificacao-do-wordpress\/","title":{"rendered":"Usando os PSRs (versus os padr\u00f5es de codifica\u00e7\u00e3o do WordPress)"},"content":{"rendered":"\n<p>Neste ponto, n\u00e3o sei quantos artigos escrevi sobre a import\u00e2ncia dos <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Padr\u00f5es de Codifica\u00e7\u00e3o do WordPress<\/a> (o suficiente para link\u00e1-los <a href=\"https:\/\/tommcfarlin.com\/psrs-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqui<\/a>, <a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqui<\/a> e <a href=\"https:\/\/tommcfarlin.com\/wordpress-coding-standards-for-the-planet\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqui<\/a>, eu acho, o que conta para alguma coisa).<\/p>\n<p>Mas depois de fazer projetos suficientes para clientes e <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">trabalhar com desenvolvedores<\/a> que s\u00e3o muito mais inteligentes e familiarizados com ferramentas avan\u00e7adas do que eu, estou em um lugar onde estou optando por <a href=\"http:\/\/www.php-fig.org\/psr\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">come\u00e7ar a usar<\/a> PSRs no desenvolvimento do WordPress WordPress.<\/p>\n<p>Ah, o drama, certo?<\/p>\n<p>S\u00e9rio, no entanto. Existem raz\u00f5es para isso, e h\u00e1 momentos em que acho que os Padr\u00f5es de Codifica\u00e7\u00e3o do WordPress ainda devem ser usados, mas estou rapidamente me convencendo de que construir qualquer projeto moderno em cima do WordPress deve usar ferramentas PHP mais modernas (que eu mencionarei brevemente mais tarde).<\/p>\n<h2>Usando PSRs no desenvolvimento do WordPress<\/h2>\n<p>Posts como esse geralmente trazem algum debate ou resposta dram\u00e1tica dentro do WordPress, o que n\u00e3o \u00e9 minha inten\u00e7\u00e3o nem \u00e9 algo que eu acho necess\u00e1rio. Para ser honesto, conhe\u00e7o um bom 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\">outros<\/a> <a href=\"https:\/\/twitter.com\/rarst\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">desenvolvedores que<\/a> <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">fizeram<\/a> isso h\u00e1 muito tempo, falaram sobre isso, seguiram em frente e continuaram a ter sucesso tanto em seus neg\u00f3cios quanto em seus projetos de hobby.<\/p>\n<p>Mas dado que eu falei tanto sobre um versus o outro, achei que vale a pena compartilhar minha opini\u00e3o sobre por que estou optando por fazer essa mudan\u00e7a agora e a l\u00f3gica por tr\u00e1s disso.<\/p>\n<h3>1 Paridade com a comunidade PHP<\/h3>\n<p>Ao longo do \u00faltimo ano, e realmente nos \u00faltimos meses deste ano, fiquei mais acostumado a:<\/p>\n<ul>\n<li>amigos desenvolvedores mais experientes em PHP endossando ferramentas que esperam que os PSRs sejam adotados,<\/li>\n<li>o uso de <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/issues\/604\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\/\/@codingStandardsIgnoreStart e \/\/@codingStandardsIgnoreEnd<\/a> no meu c\u00f3digo,<\/li>\n<li>conjuntos de regras personalizados para meus projetos com base nos ambientes nos quais eles est\u00e3o implantados,<\/li>\n<li>e mais.<\/li>\n<\/ul>\n<p>Em \u00faltima an\u00e1lise, trata-se de querer manter a paridade (ou um pouco dela) com a maior comunidade PHP em geral enquanto tamb\u00e9m escreve c\u00f3digo leg\u00edvel e baseado em padr\u00f5es em cima do WordPress. E tamb\u00e9m gostaria de usar algumas outras ferramentas e vers\u00f5es mais recentes de ferramentas existentes (que discutirei mais adiante neste post).<\/p>\n<h3>2 Problemas com ambientes modernos<\/h3>\n<p>No momento em que escrevo este post, o <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> (que \u00e9 necess\u00e1rio para executar os Padr\u00f5es de Codifica\u00e7\u00e3o do WordPress) est\u00e1 na vers\u00e3o <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>. No entanto, existem problemas de compatibilidade com PHPCS e com os Padr\u00f5es de Codifica\u00e7\u00e3o do WordPress. <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\/issues\/718\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Especificamente<\/a> :<\/p>\n<blockquote>\n<p>A nova vers\u00e3o do PHP CodeSniffer tem alguns recursos interessantes, mas apresenta mudan\u00e7as importantes, o que significa que os padr\u00f5es de codifica\u00e7\u00e3o do WordPress n\u00e3o s\u00e3o compat\u00edveis.<\/p>\n<\/blockquote>\n<p>Para ser claro (e devido \u00e0 natureza do software), \u00e9 uma quest\u00e3o de tempo at\u00e9 que seja corrigido. Mas se voc\u00ea estiver trabalhando em uma base de c\u00f3digo e estiver usando o Composer e os Padr\u00f5es de Codifica\u00e7\u00e3o do WordPress, voc\u00ea precisar\u00e1 definir explicitamente a vers\u00e3o do PHP CodeSniffer em vez da vers\u00e3o mais recente atualmente.<\/p>\n<p>Al\u00e9m disso, tive problemas com clientes em que a n\u00e3o ado\u00e7\u00e3o dos PSRs no desenvolvimento do WordPress resultou em um comportamento estranho ao implantar o c\u00f3digo. Talvez se possa argumentar que eles deveriam ajustar o ambiente, mas se eles est\u00e3o trabalhando para ter as ferramentas mais modernas dispon\u00edveis para as pessoas que as utilizam, por que regredir?<\/p>\n<h3>3 Compatibilidade com ferramentas modernas<\/h3>\n<p>Finalmente, h\u00e1 uma s\u00e9rie de ferramentas modernas que n\u00e3o consegui usar, muito menos aprender, por causa do que \u00e9 e do que n\u00e3o \u00e9 suportado pela natureza do controle de vers\u00e3o.<\/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=\"Usando os PSRs (versus os padr\u00f5es de codifica\u00e7\u00e3o do WordPress)\" ><\/a><\/p>\n<p>Por exemplo, <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">est\u00e1vamos<\/a> usando <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">o GrumPHP<\/a> em um projeto recente que tem suporte para uma variedade de ferramentas, mas n\u00e3o pudemos usar, digamos, <a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">o PHPMD<\/a> devido \u00e0 falta de ado\u00e7\u00e3o dos PSRs. No que me diz respeito:<\/p>\n<ul>\n<li>Quero melhorar continuamente minhas habilidades como desenvolvedor (e, neste contexto, desenvolvedor PHP),<\/li>\n<li>a falta de suporte para ferramentas mais modernas me coloca em um padr\u00e3o de espera que de outra forma eu n\u00e3o experimentaria,<\/li>\n<li>Quero continuar trabalhando com o WordPress, mas com um fluxo de trabalho mais moderno<\/li>\n<\/ul>\n<p>E agora, n\u00e3o usar os PSRs est\u00e1 criando uma lacuna entre o que o resto da comunidade PHP est\u00e1 fazendo e o que o WordPress est\u00e1 fazendo. Ent\u00e3o, eu gostaria de seguir em frente enquanto mantenho o trabalho em projetos em cima do software que ainda gosto de usar.<\/p>\n<h2>E quanto aos padr\u00f5es de codifica\u00e7\u00e3o do WordPress<\/h2>\n<p>Ent\u00e3o, o que isso significa sobre os Padr\u00f5es de Codifica\u00e7\u00e3o do WordPress e posts anteriores? Nada realmente. Do jeito que eu vejo: Os Padr\u00f5es de Codifica\u00e7\u00e3o do WordPress devem ser usados \u200b\u200bsempre que voc\u00ea estiver trabalhando no WordPress Core ou algo que ser\u00e1 integrado a ele.<\/p>\n<p>Mas se voc\u00ea est\u00e1 trabalhando em algo que fica em cima do WordPress ou algo que usa o WordPress como base e voc\u00ea pode usar os PSRs no desenvolvimento do WordPress junto com ferramentas que podem ajudar a aumentar a qualidade da base de c\u00f3digo que voc\u00ea est\u00e1 construindo.<\/p>\n<p>Ent\u00e3o, pelo menos por enquanto, essa \u00e9 a perspectiva que vou adotar. Estou ansioso para ver como isso vai se desenrolar nos pr\u00f3ximos meses. E, como para qualquer outra coisa que compartilhei, compartilharei os aspectos de fazer essa mudan\u00e7a.<\/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>Depois de projetos suficientes trabalhando com desenvolvedores mais inteligentes, estou pronto para come\u00e7ar a usar PSRs no desenvolvimento do 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":[722,846,867],"tags":[1170],"class_list":["post-229710","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvedor","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229710","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=229710"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229710\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/166245"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=229710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=229710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=229710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}