{"id":231544,"date":"2022-12-23T12:48:00","date_gmt":"2022-12-23T09:48:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231544"},"modified":"2022-12-07T10:53:39","modified_gmt":"2022-12-07T07:53:39","slug":"escrevendo-um-codigo-wordpress-melhor-introducao","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/escrevendo-um-codigo-wordpress-melhor-introducao\/","title":{"rendered":"Escrevendo um c\u00f3digo WordPress melhor: introdu\u00e7\u00e3o"},"content":{"rendered":"\n<p>Nos \u00faltimos anos, falei muito sobre a natureza da qualidade do c\u00f3digo e v\u00e1rias ferramentas, processos e bibliotecas que recomendo usar quando se trata de escrever c\u00f3digo para WordPress.<\/p>\n<p>Tamb\u00e9m estou aberto que a maior parte do trabalho que fa\u00e7o \u00e9 no desenvolvimento de back-end. Isso significa que trabalho predominantemente em plugins do WordPress usando programa\u00e7\u00e3o orientada a objetos e n\u00e3o trabalho muito com templates nem tanto com tecnologias front-end.<\/p>\n<p>\u00c9 por escolha, e estou muito feliz onde estou. Mas eu discordo.<\/p>\n<p>Se voc\u00ea est\u00e1 no neg\u00f3cio de fazer a mesma coisa (ou fazer isso como um hobby), n\u00e3o se trata apenas de escrever o c\u00f3digo. \u00c9 sobre ter ferramentas adequadas no lugar.<\/p>\n<p>Fiz alus\u00e3o a alguns deles em posts anteriores, mas n\u00e3o passei pelas ferramentas que uso e pela configura\u00e7\u00e3o que uso sempre que estou construindo uma solu\u00e7\u00e3o para mim ou para outra pessoa.<\/p>\n<p>Pelo menos n\u00e3o de forma organizada.<\/p>\n<p>Nesta s\u00e9rie, vou fazer exatamente isso:<\/p>\n<p>Vou abordar as ferramentas que uso, as bibliotecas que uso e como as uso.<\/p>\n<p>Em \u00faltima an\u00e1lise, o objetivo \u00e9 que aqueles de voc\u00eas que lerem isso possam incorpor\u00e1-los em seu trabalho di\u00e1rio para escrever um c\u00f3digo melhor.<\/p>\n<h2>Melhor c\u00f3digo WordPress<\/h2>\n<p>Antes de prosseguirmos, vou dar um aviso:<\/p>\n<p>A s\u00e9rie anterior que eu fiz at\u00e9 este ponto foi longa. Esta s\u00e9rie n\u00e3o. Vou focar em s\u00e9ries e posts mais curtos e mais focados por um tempo.<\/p>\n<p>Com isso que eu disse, esta s\u00e9rie pressup\u00f5e que voc\u00ea esteja familiarizado com seu IDE e tenha um conhecimento superficial do <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a>. Para mim, eu uso o Visual Studio Code (e abordei <a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bastante<\/a> ).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6475f0f.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-160420-61e70a6475f0f.png\" alt=\"Escrevendo um c\u00f3digo WordPress melhor: introdu\u00e7\u00e3o\" ><\/a><\/p>\n<p>Estarei percorrendo o processo desde o in\u00edcio at\u00e9 o ponto de ter um plugin pronto para rodar. N\u00e3o, isso n\u00e3o significa que estamos escrevendo um plugin. Mas vamos at\u00e9 o limite.<\/p>\n<p>Dito isso, vamos come\u00e7ar.<\/p>\n<h3>Instalando o Composer<\/h3>\n<p>Para quem l\u00ea este blog h\u00e1 muito tempo, sabe que j\u00e1 falei sobre isso antes; no entanto, eu nunca quero assumir algo assim quando se trata daqueles que se juntaram recentemente ou podem estar lendo sobre isso pela primeira vez.<\/p>\n<p>Se voc\u00ea j\u00e1 estiver configurado, poder\u00e1 ignor\u00e1-lo; caso contr\u00e1rio, vamos prosseguir.<\/p>\n<h4>O que significa instala\u00e7\u00e3o global?<\/h4>\n<p>Instalar um aplicativo globalmente significa que ele pode ser acessado em qualquer lugar do seu sistema. Ou seja, n\u00e3o importa se voc\u00ea est\u00e1 em seu diret\u00f3rio Documentos ou em um diret\u00f3rio de projeto, voc\u00ea pode acessar o utilit\u00e1rio pela linha de comando.<\/p>\n<p>E, claro, podemos usar o Composer por projeto (e eu defendo isso), mas h\u00e1 momentos em que \u00e9 importante instalar o Composer em uma configura\u00e7\u00e3o global tamb\u00e9m.<\/p>\n<p>E \u00e9 isso que vamos fazer aqui.<\/p>\n<h3>Duas maneiras de instalar o Composer<\/h3>\n<h4>Usando Homebrew<\/h4>\n<p>Se voc\u00ea usa o <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Homebrew<\/a>, \u00e9 poss\u00edvel instalar o Composer usando o Homebrew. \u00c9 sem d\u00favida mais f\u00e1cil de instalar e atualizar.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a682be91.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-160420-61e70a682be91.png\" alt=\"Escrevendo um c\u00f3digo WordPress melhor: introdu\u00e7\u00e3o\" ><\/a><\/p>\n<p>Claro, isso pressup\u00f5e que voc\u00ea tenha o Homebrew instalado. Se voc\u00ea n\u00e3o tiver e estiver interessado, digite <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-00-install-homebrew-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este comando<\/a> :<\/p>\n<pre><code>$ \/usr\/bin\/ruby -e \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/master\/install)\"<\/code><\/pre>\n<p>Observe, no entanto, se voc\u00ea optar por seguir esse caminho, haver\u00e1 algumas coisas com as quais voc\u00ea precisa estar familiarizado em torno do Homebrew. E embora eu seja um f\u00e3, n\u00e3o \u00e9 realmente uma parte deste post. Eu cobri isso em profundidade <a href=\"https:\/\/tommcfarlin.com\/?s=homebrew\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">em outros posts<\/a> (e voc\u00ea sempre pode ler a <a href=\"https:\/\/docs.brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documenta\u00e7\u00e3o<\/a> ).<\/p>\n<p>Ent\u00e3o voc\u00ea pode instalar o Composer, com o Homebrew, digitando o <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-01-brew-install-composer-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seguinte comando<\/a> :<\/p>\n<p>Realmente n\u00e3o \u00e9, certo?<\/p>\n<h4>Instalando o Composer manualmente<\/h4>\n<p>A outra maneira de instalar o Composer \u00e9 baixando este arquivo e colocando-o em seu caminho global.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6bcc142.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-160420-61e70a6bcc142.png\" alt=\"Escrevendo um c\u00f3digo WordPress melhor: introdu\u00e7\u00e3o\" ><\/a><\/p>\n<p>Ou seja, depois de baixar <a href=\"https:\/\/getcomposer.org\/composer.phar\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este arquivo<\/a> (observe que o link \u00e9 um download real, preste aten\u00e7\u00e3o onde voc\u00ea o coloca!), voc\u00ea pode executar <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-02-install-composer-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este comando<\/a> de dentro do terminal:<\/p>\n<pre><code>$ mv composer.phar \/usr\/local\/bin\/composer<\/code><\/pre>\n<p>E isso mover\u00e1 o Composer para seu caminho global.<\/p>\n<h2>Verifique a instala\u00e7\u00e3o do compositor<\/h2>\n<p>Depois de seguir uma das etapas acima, voc\u00ea poder\u00e1 testar a vers\u00e3o do Composer executando <a href=\"https:\/\/gist.github.com\/tommcfarlin\/0bac4a7b1f2d6c1b593331b99725e906#file-03-composer-v-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">o seguinte<\/a> em seu terminal:<\/p>\n<p>E voc\u00ea deve ver algo assim:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160420-61e70a6e69b61.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-160420-61e70a6e69b61.png\" alt=\"Escrevendo um c\u00f3digo WordPress melhor: introdu\u00e7\u00e3o\" ><\/a><\/p>\n<p>Se voc\u00ea n\u00e3o fizer isso, verifique novamente as etapas acima.<\/p>\n<h2>Para as ferramentas<\/h2>\n<p>Uma das perguntas que surgem ocasionalmente, em rela\u00e7\u00e3o ao Composer, \u00e9 por qu\u00ea? E embora eu possa responder isso neste post, lembre-se que estou trabalhando para manter esta e esta s\u00e9rie um pouco mais sucintas do que a s\u00e9rie anterior.<\/p>\n<p>Ent\u00e3o, vou tentar responder isso, resumidamente, no pr\u00f3ximo post, bem como abordar como come\u00e7ar com algumas ferramentas, ap\u00f3s as quais come\u00e7aremos a ver como ele pode desempenhar um papel maior no desenvolvimento de plugins do WordPress.<\/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>Esta s\u00e9rie abordar\u00e1 as ferramentas e bibliotecas que uso para escrever um c\u00f3digo WordPress melhor.<\/p>\n","protected":false},"author":1,"featured_media":236179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,806,846,867],"tags":[1170],"class_list":["post-231544","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-php-8","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231544","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=231544"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231544\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/236179"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=231544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=231544"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=231544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}