{"id":230277,"date":"2022-11-23T11:12:00","date_gmt":"2022-11-23T08:12:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230277"},"modified":"2022-11-09T20:55:23","modified_gmt":"2022-11-09T17:55:23","slug":"um-ambiente-de-desenvolvimento-wordpress-usando-um-gerenciador-de-pacotes","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/um-ambiente-de-desenvolvimento-wordpress-usando-um-gerenciador-de-pacotes\/","title":{"rendered":"Um ambiente de desenvolvimento WordPress (usando um gerenciador de pacotes)"},"content":{"rendered":"\n<p>Neste ponto, escrevi sobre os <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/oop-fundamentals\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Fundamentos de OOP<\/a><\/strong> que acredito serem necess\u00e1rios para come\u00e7ar a examinar t\u00f3picos mais aprofundados (como padr\u00f5es de design e como aplicar esses t\u00f3picos no desenvolvimento do WordPress).<\/p>\n<p>Mas ao planejar o conte\u00fado, continuei voltando a algumas outras coisas que acho que tamb\u00e9m s\u00e3o necess\u00e1rias para cobrir eventualmente. S\u00e3o coisas como Composer, Yarn, ferramentas de constru\u00e7\u00e3o e assim por diante.<\/p>\n<p>Acima disso, por\u00e9m, continuei me perguntando:<\/p>\n<blockquote>\n<p>Se vou escrever sobre esse material em detalhes, devo assumir que todos estamos usando o mesmo ambiente?<\/p>\n<\/blockquote>\n<p>E essa \u00e9 uma pergunta dif\u00edcil de responder porque algumas das pessoas que est\u00e3o lendo isso est\u00e3o escrevendo c\u00f3digo h\u00e1 algum tempo. Ou seja, eles (ou voc\u00ea) t\u00eam suas ferramentas, sua configura\u00e7\u00e3o e como voc\u00ea gosta de organizar seus projetos.<\/p>\n<p>Por outro lado, existem aqueles (ou voc\u00ea) que est\u00e3o procurando um caminho diferente ou procurando come\u00e7ar do zero. E para isso, acho importante abordar duas coisas:<\/p>\n<ol>\n<li>Como configurar um ambiente de desenvolvimento local<\/li>\n<li>Que IDE, Add-Ons e Ferramentas ser\u00e3o usados<\/li>\n<\/ol>\n<p>Para alguns, n\u00e3o s\u00e3o os t\u00f3picos mais interessantes e certamente est\u00e3o colocando uma pausa no aspecto mais avan\u00e7ado da programa\u00e7\u00e3o orientada a objetos. J\u00e1 que aqueles de voc\u00eas que pagam para ler este material t\u00eam acesso aos coment\u00e1rios, tenho que supor que \u2013 em algum momento \u2013 os coment\u00e1rios vir\u00e3o perguntando sobre como conseguir certas coisas.<\/p>\n<p>E para esse fim, vou assumir que estamos todos trabalhando no mesmo campo de jogo. Se n\u00e3o, h\u00e1 muito que posso fazer para fornecer ajuda al\u00e9m das quest\u00f5es reais de programa\u00e7\u00e3o.<\/p>\n<p>Ent\u00e3o, antes de ir mais longe na programa\u00e7\u00e3o orientada a objetos, vou passar alguns posts cobrindo os t\u00f3picos acima em detalhes para ter certeza de que estamos todos na mesma p\u00e1gina.<\/p>\n<p>Se voc\u00ea estiver confort\u00e1vel com suas ferramentas e sua configura\u00e7\u00e3o, por favor, tenha paci\u00eancia comigo. Se voc\u00ea est\u00e1 procurando uma maneira definitiva de configurar seu ambiente, as postagens a seguir s\u00e3o para voc\u00ea.<\/p>\n<p>E com tudo isso dito, vamos come\u00e7ar falando sobre como configurar de forma limpa um ambiente de desenvolvimento local que seja f\u00e1cil de manter.<\/p>\n<h2>Ambiente de Desenvolvimento WordPress<\/h2>\n<p>Se voc\u00ea est\u00e1 lendo isso, provavelmente sabe que o <strong><a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a><\/strong> requer tr\u00eas softwares para ser executado:<\/p>\n<ul>\n<li><strong><a href=\"http:\/\/www.php.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP<\/a><\/strong> ,<\/li>\n<li>Um servidor web (que geralmente \u00e9 <strong><a href=\"https:\/\/httpd.apache.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Apache<\/a><\/strong> ou <strong><a href=\"https:\/\/www.nginx.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Nginx<\/a><\/strong> ),<\/li>\n<li>Um servidor de banco de dados (que \u00e9 tradicionalmente <strong><a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MySQL<\/a><\/strong> ).<\/li>\n<\/ul>\n<p>Todo esse software pode ser instalado manualmente, mas sou um grande f\u00e3 de usar um gerenciador de pacotes (pense em uma loja de aplicativos ou algo semelhante) para gerenciar tudo isso. Isso torna a instala\u00e7\u00e3o, atualiza\u00e7\u00e3o, remo\u00e7\u00e3o e localiza\u00e7\u00e3o de problemas muito, muito mais f\u00e1cil.<\/p>\n<p>E para mim, minha escolha de gerenciadores de pacotes para lidar com esse tipo de coisa \u00e9 o <strong><a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Homebrew<\/a><\/strong>. (E sim, eu escrevi sobre isso em alguns outros posts tamb\u00e9m.)<\/p>\n<p>Ao us\u00e1-lo, poderemos instalar todos os itens acima, nos preparar para mergulhar mais fundo na programa\u00e7\u00e3o orientada a objetos e aplicar os t\u00f3picos no desenvolvimento do WordPress.<\/p>\n<h3>1 Instale o Homebrew<\/h3>\n<p>A primeira coisa que queremos fazer, antes de mais nada, \u00e9 instalar o Homebrew. Independentemente do seu sistema operacional, isso requer que o Ruby esteja instalado, portanto, se voc\u00ea n\u00e3o o tiver, certifique-se de instal\u00e1-lo.<\/p>\n<p>Se voc\u00ea estiver executando o macOS ou uma variante do Linux, provavelmente j\u00e1 o possui. Posso falar pelos usu\u00e1rios do Windows, mas <strong><a href=\"https:\/\/www.ruby-lang.org\/en\/documentation\/installation\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">instal\u00e1-lo \u00e9 simples<\/a><\/strong>.<\/p>\n<p>Se (ou uma vez) o Ruby estiver instalado, digite o seguinte comando no seu Terminal ou na sua linha de comando:<\/p>\n<p><code>\/usr\/bin\/ruby -e \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/master\/install)\"<\/code><\/p>\n<p>Ap\u00f3s o in\u00edcio da instala\u00e7\u00e3o, voc\u00ea dever\u00e1 ver algo como o seguinte em sua sess\u00e3o:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164668-61e76a27aeab4.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-164668-61e76a27aeab4.png\" alt=\"Um ambiente de desenvolvimento WordPress (usando um gerenciador de pacotes)\" ><\/a><\/p>\n<p>Isso pode levar algum tempo, mas o instalador geralmente \u00e9 muito bom em fornecer feedback sobre o que est\u00e1 fazendo, portanto, seja paciente. Ele ir\u00e1 notific\u00e1-lo quando estiver pronto e, uma vez feito, ser\u00e1 t\u00e3o f\u00e1cil continuar instalando o restante do que for necess\u00e1rio.<\/p>\n<p>E \u00e9 isso que vamos fazer a seguir.<\/p>\n<h3>2 Instalando o Valet<\/h3>\n<p>Embora pessoas diferentes prefiram servi\u00e7os diferentes (como <a href=\"https:\/\/tommcfarlin.com\/mamp-4-wordpress-development\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MAMP<\/a> ), aprendi a gostar muito de <strong><a href=\"https:\/\/laravel.com\/docs\/5.6\/valet\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Valet<\/a><\/strong>. \u00c9 uma solu\u00e7\u00e3o completa e facilita muito o gerenciamento dos v\u00e1rios componentes que acompanham a execu\u00e7\u00e3o de um ambiente de desenvolvimento do WordPress.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164668-61e76a2bd582b.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-164668-61e76a2bd582b.png\" alt=\"Um ambiente de desenvolvimento WordPress (usando um gerenciador de pacotes)\" ><\/a><\/p>\n<p>Claro, \u00e9 necess\u00e1rio mergulhar no Terminal de tempos em tempos, mas acredito que, se voc\u00ea deseja mergulhar na programa\u00e7\u00e3o orientada a objetos, provavelmente precisar\u00e1 se familiarizar com o Terminal, especialmente ao trabalhar com ferramentas como <strong><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a><\/strong>, <strong><a href=\"https:\/\/yarnpkg.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Yarn<\/a><\/strong>, <strong><a href=\"https:\/\/git-scm.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Git<\/a><\/strong> ou outras ferramentas para discutir muito mais no futuro.<\/p>\n<p>De qualquer forma, neste momento voc\u00ea est\u00e1 pronto para instalar o Valet. Para os prop\u00f3sitos deste guia, usaremos:<\/p>\n<ul>\n<li>PHP 7.2<\/li>\n<li>Compositor<\/li>\n<\/ul>\n<p>A instala\u00e7\u00e3o de cada um deles \u00e9 bastante f\u00e1cil e todas as instru\u00e7\u00f5es necess\u00e1rias est\u00e3o abaixo.<\/p>\n<p>Como acabamos de instalar o Homebrew, n\u00e3o h\u00e1 necessidade de atualiz\u00e1-lo. Se, no entanto, voc\u00ea j\u00e1 o tiver instalado, certifique-se de executar:<\/p>\n<p><code>$ brew update<\/code><\/p>\n<h4>Instale o PHP 7.2<\/h4>\n<p>Em seguida, v\u00e1 em frente e instale o PHP 7.2 emitindo o seguinte comando no seu Terminal:<\/p>\n<p><code>$ brew install homebrew\/php\/php72<\/code><\/p>\n<p>O Homebrew far\u00e1 a coisa usual de baixar os bin\u00e1rios, instal\u00e1-los e, em seguida, inform\u00e1-lo quando estiver conclu\u00eddo.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164668-61e76a30f0160.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-164668-61e76a30f0160.png\" alt=\"Um ambiente de desenvolvimento WordPress (usando um gerenciador de pacotes)\" ><\/a><\/p>\n<p>Neste ponto, precisamos usar o Composer para instalar o Valet, mas antes de fazer isso, precisamos ter certeza de que o Composer est\u00e1 instalado.<\/p>\n<h4>Instalar o Compositor<\/h4>\n<p>Como estamos usando o Homebrew, instalar o Composer tamb\u00e9m \u00e9 muito f\u00e1cil, pois podemos instal\u00e1-lo como qualquer outro pacote. Para isso, digite o seguinte comando:<\/p>\n<p><code>$ brew install composer<\/code><\/p>\n<p>E, como vimos ao longo deste tutorial, o Homebrew far\u00e1 sua parte e o notificar\u00e1 quando estiver conclu\u00eddo. Para verificar se foi instalado corretamente, digite o seguinte comando e pressione enter:<\/p>\n<p><code>$ composer --version<\/code><\/p>\n<p>No momento deste artigo, o Composer est\u00e1 na vers\u00e3o 1.6.3.<\/p>\n<p><strong>Nota<\/strong>: \u00c0s vezes, o Homebrew detectar\u00e1 que o Composer j\u00e1 est\u00e1 instalado e informar\u00e1 que ele j\u00e1 existe. Legal n\u00e9? Ele vai dar uma mensagem que l\u00ea algo assim:<\/p>\n<blockquote>\n<p>O destino \/usr\/local\/bin\/composer j\u00e1 existe. Voc\u00ea pode querer remov\u00ea-lo.<\/p>\n<\/blockquote>\n<p>E ent\u00e3o d\u00e1 instru\u00e7\u00f5es para faz\u00ea-lo. Eu sou um f\u00e3 de seguir as instru\u00e7\u00f5es para que tudo seja gerenciado no Homebrew.<\/p>\n<h4>Instalar manobrista<\/h4>\n<p>Agora \u00e9 finalmente hora de instalar o manobrista. Como instalamos o Homebrew, PHP e Composer, \u00e9 f\u00e1cil instalar o restante do que precisamos para nosso ambiente de desenvolvimento.<\/p>\n<p>Caso em quest\u00e3o: Emita o seguinte comando no seu Terminal:<\/p>\n<p><code>$ composer global require laravel\/valet<\/code><\/p>\n<p>A seguir, digite o seguinte comando:<\/p>\n<p><code>$ ~\/.composer\/vendor\/bin<\/code><\/p>\n<p>Como isso garantir\u00e1 que o Valet esteja nas vari\u00e1veis \u200b\u200bde ambiente do seu sistema (ou seu PATH, como alguns dir\u00e3o, dependendo do seu sistema operacional). Em \u00faltima an\u00e1lise, o objetivo disso \u00e9 garantir que ele esteja acess\u00edvel, independentemente de onde voc\u00ea esteja no sistema.<\/p>\n<p>Por fim, insira isso em sua sess\u00e3o:<\/p>\n<p><code>$ valet install<\/code><\/p>\n<p>Voc\u00ea pode receber algumas mensagens sobre ele parar o Nginx, atualizar a configura\u00e7\u00e3o e reinici\u00e1-lo. Em \u00faltima an\u00e1lise, por\u00e9m, voc\u00ea vai querer ver o seguinte:<\/p>\n<blockquote>\n<p>Manobrista instalado com sucesso!<\/p>\n<\/blockquote>\n<p>E uma vez que voc\u00ea v\u00ea isso, voc\u00ea terminou com a primeira parte disso!<\/p>\n<h2>Qual \u00e9 o pr\u00f3ximo?<\/h2>\n<p>Neste ponto, voc\u00ea tem tudo o que precisa para configurar sites de teste, instalar o WordPress e tudo mais. Abordarei isso em um pr\u00f3ximo post, mas tamb\u00e9m abordarei como selecionar um IDE e os suplementos necess\u00e1rios para complementar o trabalho que fizemos at\u00e9 agora.<\/p>\n<p>Enquanto isso, se voc\u00ea tiver d\u00favidas, n\u00e3o hesite em deixar um coment\u00e1rio. Pode ser uma pergunta, uma dica para outros usu\u00e1rios do software, uma sugest\u00e3o ou qualquer outra coisa.<\/p>\n<p>Independentemente disso, estamos um passo mais perto de escrever c\u00f3digo profissional orientado a objetos usando tecnologias s\u00f3lidas para fazer isso.<\/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>Instru\u00e7\u00f5es para instalar um ambiente de desenvolvimento local do WordPress do in\u00edcio ao fim usando um gerenciador de pacotes.<\/p>\n","protected":false},"author":1,"featured_media":164669,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[753,722,846,867],"tags":[1170],"class_list":["post-230277","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-aberto","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\/230277","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=230277"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230277\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/164669"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}