Ao longo dos últimos anos, uma das maiores dificuldades ao desenvolver sites em WordPress complexos, com temas e plugins personalizados e com vários plugins de terceiros, é justamente manter todas essas dependências (incluindo o próprio WordPress) em sincroniza entre toda a equipe de desenvolvimento.

Pensando nisso, várias empresas de desenvolvimento web, incluindo a webfatorial, começamos a estudar inúmeras maneiras de organização dessas dependências, que fossem eficazes e que permitissem manter o código-fonte consistente e confiável. Uma dessas maneiras é utilizar Composer para melhorar o workflow de desenvolvimento com WordPress.

Composer


O Composer é uma ferramenta, mais do que eficiente, para gerenciamento de dependências em PHP e nada mais justo utilizarmos essa poderosa ferramenta a nosso favor em sites WordPress.

Ele permite que você declare as bibliotecas dependentes que seu projeto precisa e as instala para você.

Caso não o conheça, leia mais, sobre o gerenciador de dependências PHP, em nosso artigo Composer: a evolução PHP e aprenda como fazer suas atualizações em Composer: como atualizar.

Instalando WordPress com Composer

Para adicionar o WordPress como uma dependência a ser instalado pelo Composer, precisaremos que o mesmo esteja no repositório oficial do Composer, o Packagist, ou em algum repositório de controle de versão com o GitHub (ou algum repositório privado). Como o WordPress não possui um repositório oficial no Packagist e também não possui uma versão em língua portuguesa no GitHub, vamos utilizar um repositório mantido pela webfatorial do WordPress (já cadastrado no Packagist).

Assim, vamos iniciar nosso composer.json adicionando este repositório nos pacotes necessários para que o Composer o instale.

Para completarmos essa instalação, ainda precisamos adicionar uma configuração extra para que a instalação do WordPress seja independente do conteúdo do nosso projeto – afinal, o objetivo é um desenvolvimento utilizando dependências.

Para informar ao Composer em qual pasta queremos que o core do WordPress seja instalado, é preciso adicionar o nó extra ao nosso composer.json e especificar um nome para este diretório que, no nosso caso, será “core”.

WordPress Packagist

O WordPress Packagist é um projeto desenvolvido pela empresa Outlandish que tem como objetivo a disponibilização de um repositório para ser utilizado via Composer que espelha os repositórios de plugins e temas oficial do WordPress.

Para podermos começar a utilizar as vantagens do WordPress Packagist em nosso projeto, primeiramente precisamos adicionar seu repositório ao nosso arquivo composer.json, adicionando um novo nó repositories para que o Composer o identifique.

Agora, podemos usar plugins/temas ao nosso projeto simplesmente adicionando ao nosso nó require o nome do pacote (prefixado com “wpackagist-plugin/” e “wpackagist-theme/”, respectivamente) e sua versão, que pode ser informada de maneira específica (ex. “1.3.2”) ou qualquer versão utilizando “*” (ou alguma outra forma de especificar a versão de um pacote no Composer).

Em nosso exemplo, utilizaremos o tema Vantage e os plugins Akismet, W3 Total Cache e WordPress SEO by Yoast.

Prefira a utilização de versões específicas de seus plugins/temas para que uma atualização desapercebida não quebre o projeto.

Da mesma maneira que foi preciso especificar um diretório para o core do WordPress, será necessário especificar onde serão instalados os conteúdo específicos do projeto (geralmente no diretório “wp-content”). Para o nosso exemplo, vamos chamá-lo de “app”. Para isso, vamos adicionar mais algumas linhas no nó extra.

Nosso composer.json já está quase pronto, precisamos apenas dizer para o Composer fazer uma cópia simples da pasta de idiomas do core do WordPress para nossa pasta do projeto. Para isso, adicionamos um novo nó script para que seja executado após a instalação e sempre que houver uma atualização. Dessa forma, nosso administrativo ficará sempre em português.

E a música acontece

Agora que nosso arquivo composer.json está pronto, nos deparamos com uma pasta de projeto com apenas um arquivo. Basta entrar no terminal, executar o comando composer install e voilà! Temos nosso WordPress todo instalado com a seguinte estrutura:

Configurando o WordPress

Para que tudo funcione corretamente, precisamos configurar manualmente o WordPress para que ele compreenda os novos diretórios criados. Para começar, precisamos copiar o arquivo /core/wp-config-sample.php para o diretório raiz e renomeá-lo para wp-config.php. Precisamos, também, adicionar e alterar alguns dados.

Primeiramente, vamos adicionar os dados do banco de dados:

Para adicionar essas “chave_unica” você pode utilizar a própria API WordPress para gerar chaves de segurança.

Agora, precisamos adicionar algumas linhas de código para configurar nossos novos diretórios:

Caso a instalação do seu projeto esteja em um diretório específico do seu host (ex. http://localhost/projeto/), você precisará adicionar as linhas de código da seguinte maneira:

Para finalizar, também precisamos atualizar a definição do ABSPATH no arquivo wp-config.php para o novo diretório:

Depois, precisamos copiar o arquivo /core/index.php para a pasta raiz e alterar o caminho da chamada do arquivo wp-blog-header.php para a nova pasta “core” do WordPress.

Nossa estrutura de pastas está dessa maneira:

Agora, podemos executar nossa instalação do WordPress, bastando abrir no navegador seu host configurado (ex. http://localhost/).

Após instalar o WordPress e entrar no administrativo (segundo o exemplo, http://localhost/core/wp-admin), precisamos ativar o tema escolhido – já que o tema que vem ativo por padrão no WordPress não existe. Vá em Aparência > Temas e ative seu tema (no nosso caso, o Vantage).

Agora precisamos ir em Configurações > Geral > Endereço do site (URL) e remover o diretório /core do endereço.

Configurando WordPress com Composer

Finalizando as configurações do WordPress, seu site já está pronto para ganhar vida!

Atualizando o WordPress, plugins e temas

Para atualizar o “core” do WordPress, seus plugins e temas, basta entrar no seu composer.json, adicionar a nova versão e depois executar composer update.

Lembre sempre de testar seu site toda vez que fizer uma atualização antes de o colocar no servidor definitivo (ambiente de produção) para garantir que ele não vai quebrar – na verdade, este procedimento é sempre ma boa prática, mesmo se não estiver trabalhando com essa técnica de utilizar Composer para melhorar o workflow de desenvolvimento no WordPress.

Conclusão sobre usar WordPress com Composer

Quando os projetos em que participamos começam a ficar mais complexos e demandam um maior cuidado com sua estrutura e organização (leia-se: projetos mais profissionais), é preciso repensar a maneira com que atuamos neles e buscar soluções à altura.

Certamente, usar o Composer para melhorar o workflow de desenvolvimento com WordPress é uma das maneiras de buscar essa atualização na maneira de se trabalhar.

E existem muitas outras! Fiquem ligados nos artigos do desenvolvimento para web para mais artigos sobre como aprimorar seus workflow de projetos com o Composer e WordPress!