Usando o Composer com WordPress
Publicados: 2022-06-30O WordPress existe desde 2003 e se tornou a ferramenta padrão para a maioria das pessoas que desejam iniciar um site. Embora tenha percorrido um longo caminho desde suas raízes como mecanismo de blog, a tecnologia subjacente não deu os mesmos saltos que a experiência do usuário.
O desenvolvimento do WordPress ainda gira em torno de muitos dos padrões que estavam presentes em 2003. Embora isso possa torná-lo mais acessível às pessoas devido ao menor conhecimento técnico necessário, isso também significa que muitos novos recursos de desenvolvimento não são compatíveis com o WordPress imediatamente.
Hoje, vamos dar uma olhada em uma dessas novas ferramentas chamadas Composer. Vamos ver como ele pode se encaixar no seu fluxo de trabalho do WordPress e discutir por que você pode querer experimentá-lo.
O que é Compositor?
Cada pedaço de código que você escreve tem dependências. Se você está escrevendo um plugin WordPress, sua maior dependência é o próprio WordPress. Sem as funções principais que o WordPress fornece, é provável que seu plugin não seja útil. Fora do próprio WordPress, você pode precisar de um cliente SOAP moderno como o nusoap para fazer interface com APIs baseadas em SOAP.
No passado, a maioria das pessoas simplesmente copiava o repositório do nusoap em um diretório em seu plugin e depois incluía os arquivos necessários para usar a biblioteca. É aqui que o Composer pode intervir e simplificar parte do gerenciamento de suas dependências.
O Composer é um gerenciador de dependências. Ele foi projetado especificamente para facilitar a instalação e o gerenciamento de dependências. Isso pode se tornar especialmente crucial se você estiver trabalhando em equipe e quiser ter certeza de que todos os membros da equipe estão usando as mesmas bibliotecas que fazem seu trabalho de desenvolvimento.
Em sua base, o Composer é um arquivo JSON que detalha as dependências que você instalou e quais versões das dependências você deseja usar. Você pode ver um exemplo básico abaixo que inclui a dependência do nusoap.
{
“exigir”: {
“econea/nusoap”: “^0.9.10”
}
}
Quando executo o composer require econea/nusoap no meu plugin, ele instalará o nusoap para mim e o bloqueará na versão especificada. Neste caso, estou usando 0.9.10 e continuarei usando a menos que eu diga ao Composer para atualizar a dependência.
Isso tem a vantagem de simplesmente baixar e incluir o nusoap porque posso usar o composer update para atualizar todas as minhas dependências sem precisar ver se há atualizações e baixá-las manualmente no meu projeto. O Composer assume o gerenciamento de recursos neste nível.
Introdução ao Composer
Instalar o compositor é bastante simples.
No Windows
Se você estiver no Windows, há um instalador fornecido para simplificar o processo. Ele instalará a versão mais recente do Composer e a tornará acessível globalmente para seus projetos.
Linux/Unix/macOS
Em qualquer uma dessas plataformas, você tem mais algumas etapas para configurar o Composer. Para começar, execute os comandos necessários para baixar o Composer e configurá-lo.
php -r “copy('https://getcomposer.org/installer', 'composer-setup.php');”
php -r “if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f43af1d4d07ee0f76181c7 verificado'; } else { echo 'Instalador corrompido'; unlink('compositor-setup.php'); } echo PHP_EOL;”
php composer-setup.php
php -r “unlink('composer-setup.php');”
Em seguida, você desejará executar o Composer globalmente para desenvolvimento local, portanto, precisaremos ajustar a instalação padrão para garantir que ela esteja disponível sempre que quisermos usar o Composer. Você pode mover o Composer para estar disponível globalmente com o seguinte comando executado no mesmo diretório do qual você acabou de baixar o Composer.
mv composer.phar /usr/local/bin/composer
Atualizando o Compositor
No Windows e no macOS, tudo o que você precisa fazer para atualizar para a versão mais recente do Composer é executar a atualização automática do compositor. Se você estiver no Linux/Unix, precisará executar sudo apt update && upgrade para que seu sistema verifique as versões mais recentes e, em seguida, execute a atualização automática do compositor para obter a versão mais recente.
Agora que você está configurado, vamos dar uma olhada no uso do Composer para instalar o WordPress.
Instale o WordPress com o Composer
E se você quiser gerenciar um site inteiro com o Composer? Primeiro, você precisa decidir se o WordPress é a dependência do projeto ou o núcleo do projeto? Sim, um pouco de torção cerebral.
O WordPress pode ser considerado uma dependência do projeto porque o objetivo final para seus clientes não é ter o WordPress instalado. Eles querem uma loja ou um blog e isso depende de você instalar o WordPress. Esta é a postura que um projeto como o Roots assume com sua configuração Bedrock WordPress baseada no Composer chamada Bedrock.
Usar o Bedrock significa que você não precisa contar ao Composer sobre o WPackagist porque ele já está configurado. É onde eu recomendo que você comece se quiser gerenciar um site inteiro com o Composer.
Para instalar o Bedrock execute o seguinte comando.
compositor criar-projeto raízes/fundo
Isso lhe dará a seguinte estrutura de arquivos.
├── compositor.json
├── .env
├── configuração
│ ├── application.php
│ └── ambientes
│ ├── development.php
│ ├── staging.php
│ └── produção.php
├── vendedor
└── web
├── aplicativo
│ ├── mu-plugins
│ ├── plugins
│ ├── temas
│ └── carregamentos
├── wp-config.php
├── index.php
└── wp
Isso é muito diferente da configuração padrão do WordPress. Para começar, você tem seu arquivo composer.json na raiz da instalação. É aqui que você verá sua configuração do Composer.
Seu arquivo .env é onde você pode armazenar as diferentes configurações de banco de dados. Isso é necessário porque seu site local e seu site ativo terão senhas de banco de dados e nomes de usuário diferentes. O arquivo wp-config.php padrão entenderá as variáveis que você colocar em seu arquivo .env porque o Bedrock usa essas variáveis em vez de codificar as informações de conexão do banco de dados.
Seu arquivo .env deve ser ignorado em seu repositório Git. Ao configurar um novo site, você adiciona um novo arquivo .env a ele com as informações de configuração do banco de dados necessárias.
Existem algumas outras variáveis que você precisa configurar aqui para iniciar o Bedrock, todas detalhadas em sua documentação.
Na pasta config existem diferentes configurações padrão para os ambientes que você usará. No desenvolvimento, isso ativa o relatório de erros e, em seus ambientes de produção, garante que o log de erros não interfira no bom funcionamento do seu site.
Com o Bedrock como base, agora você pode usar o Composer para instalar seus plugins do WordPress via WPackagist.
WPackagist é um espelho do repositório de temas e plugins do WordPress. Isso é necessário porque, por padrão, a maioria dos plugins e temas não estão disponíveis para instalação do Composer. O espelho adiciona os arquivos necessários para cada plugin para que o Composer possa ser usado para gerenciar os plugins.
Se você deseja instalar o WooCommerce em sua instalação do WordPress baseada em Bedrock, você precisa exigir o WooCommerce primeiro, o compositor requer wpackagist-plugin/woocommerce, então você precisa dizer ao Composer para instalar as dependências, composer install.
Agora você pode ir para a área de administração do seu WordPress instalar e ativar o WooCommerce e começar a construir seu site. Para atualizar o WooCommerce quando uma nova versão for lançada ou para atualizar o WordPress, você precisa executar a atualização do compositor.
É aqui que um projeto baseado no Composer pode ter alguns problemas. Se você executar suas atualizações através do administrador do WordPress, você terá uma incompatibilidade entre o que o Composer espera e o que o WordPress instalou. Se você for usar o Composer, continue usando-o como sua ferramenta de atualização e não funcione através do administrador do WordPress.
Quando você deve usar o Composer ?
Tenho certeza de que muitos de vocês estão perguntando por que o Composer é uma ferramenta tão boa para o desenvolvimento do WordPress. O WordPress não foi construído com o Composer em mente, então para trabalhar com ele você tem que passar por alguns obstáculos para fazê-lo funcionar bem.
Para desenvolvedores de plugins e temas, há um caso claro de que o Composer pode tornar mais fácil lidar com dependências que você precisa trazer do ecossistema PHP mais amplo. Para desenvolvedores do WordPress, o argumento é menos claro. Alguns gostam de usar o Composer para gerenciar todo o site, como faz o Roots. Isso pode permitir que você tenha menos arquivos gerenciados pelo Git, mas isso nunca me pareceu um caso convincente.
O caso que eu gosto é que o Composer pode tornar mais fácil ter diferentes dependências para diferentes ambientes. Você pode então usar seu processo de implantação para implantar essas dependências em seus ambientes e não precisar gerenciá-las manualmente.
Como desenvolvedor, você também precisa levar em consideração as necessidades do seu cliente. Se eles não tiverem uma equipe de desenvolvimento para gerenciar o site a longo prazo, poderão ter problemas com uma instalação não padrão do WordPress. Em alguns casos, seus hosts podem informar que o suporte não está disponível porque eles não estão usando a maneira normal de instalar e usar o WordPress. Quando você atende clientes, você sempre precisa equilibrar a tecnologia legal que você usa com o que o cliente pode lidar a longo prazo.
Por esse motivo, não uso o Composer em meus projetos de site completo. Meus clientes vão gerenciá-los dia a dia por anos e não quero colocar barreiras extras. Nós dois queremos que seus sites funcionem sem problemas nos próximos anos.
Se você deseja atualizar suas habilidades em PHP com tecnologias modernas, certamente deve dar uma olhada em como o Composer pode se encaixar em seus fluxos de trabalho do WordPress.