Ambiente de Desenvolvimento PHP com Docker - Parte 2 - Qualidade de Código & Git

Danilo Lutz
4 min readSep 5, 2018

--

Fala galera, estão todos bem? Espero que sim…

Continuando nossa série, vamos agora colocar nosso ambiente Docker em um repositório git e adicionar nesse ambiente algumas ferramentas para checar e garantir alguma qualidade para o código, como o PHP Code Sniffer e seu parceiro de trabalho, o PHP Code Beautifier.

Do que (usuários Windows rsrsrs) precisaremos:

  • Make: Para executar um script aí, que será um plus para esse artigo. O Make é para usuários Windows, já que no Linux e MacOS ele já é nativo.
  • Além claro do que está na Parte 1 dessa série.

Vamos para festa?

Vamos primeiramente garantir que nosso código siga as PHP Standards Recommendations ou PSRs para os íntimos. Assim asseguramos uma qualidade mínima do nosso código PHP.

Vamos alterar nosso arquivo docker-compose.yml para cobrir essa necessidade, mas por pura e simples praticidade vamos usar uma Imagem Docker que já possui o phpcs e o phpcbf configurados então, adicione a linha no final do arquivo como mostrado abaixo:

Adição das linhas 23 e 24.

Calma… ainda não é hora de executar os comandos… prosseguindo…

Agora é uma ótima hora para adicionarmos um arquivo chamado: Makefile na pasta raiz do projeto. Esse arquivo deve ter o seguinte conteúdo:

Adição do arquivo Makefile.

Feito? Sim feito, Danilo…

Agora então abram o terminal, como sempre na pasta raiz do projeto, e executem o comando make setup. O Make executará para nós os comandos definidos em setup: definido nas linhas 2 e 3. O comando make setup poderá levar um tempinho dependendo da internet de vocês, afinal ele é quem baixa as imagens do Docker que iremos utilizar.

Show né? Depois de executado para checarmos se tudo rolou certinho basta abrir o navegador e digitar:

http://localhost/

Deveremos ver o phpinfo() o qual, criamos na Parte 1.

Interessante, mas e qualidade de código Danilo?

Para checar a qualidade do nosso código e já fazer algumas correções automaticamente, execute os seguintes comandos, na pasta raiz do projeto:

$ docker run -i --rm -v $(pwd):/project -v $(pwd)/tmp-phpqa:/tmp -w /project jakzal/phpqa:alpine phpcbf --standard=PSR2 --encoding=utf-8 -n -p .

Cumprido o comando né, mas se quisermos rodar a ferramenta diretamente do Docker é assim mesmo, melhoraremos isso posteriormente. Enfim, o comando acima irá rastrear erros e tentará corrigi-los, é o PHP Code Beautifier trabalhando para nós.

$ docker run -i --rm -v $(pwd):/project -v $(pwd)/tmp-phpqa:/tmp -w /project jakzal/phpqa:alpine phpcs --standard=PSR2 --encoding=utf-8 -n -p .

Nota: $pwd() é um comando Unix, usuários do Windows, usem o equivalente para referenciar a pasta atual.

Já esse segundo comando irá rastrear os erros que o phpcbf não conseguiu corrigir automaticamente e nos dará um sumário para tomarmos alguma providência, aí já é PHP Code Sniffer trabalhando para nós.

Execução das Ferramentas garantida, vamos ao repositório git…

Checa lá… no meu Github…

Show né, agora que temos nosso ambiente, podemos colocar ele em um repositório, então vamos criar uma conta no Github, caso ainda não possuam uma (em que século vocês estão? Hehehe). Já, beleza prossigamos com o trabalho.

Passo 1: Criando um novo repositório no Github
Passo 2: Nomeando e configurando o novo repositório no Github.
Passo 3: Repositório criado com sucesso.

Após criar a conta e o repositório, acessem pelo terminal a pasta do projeto e digitem os seguintes comandos:

$ git init
$ git remote add origin https://github.com/seu-usuario/nome-do-seu-repositorio.git
$ git add .
$ git commit -m "Primeiro commit - Parte 2"
$ git push -u origin master

Isso já enviará tudo que nós fizemos para o Github.

Agora, vamos apagar a pasta do projeto (ou renomear, tanto faz, sendo que está tudo salvo no Github).

E vamos fazer um clone do repositório do git para verificarmos se tudo está correto:

$ git clone https://github.com/seu-usuario/nome-do-seu-repositorio.git
$ cd nome-do-seu-repositorio

Em seguida ao clone, já navegaremos para a pasta raiz do projeto utilizando o comando cd e digitem make setup. E vejam a mágica acontecer. ;-)

Ele deverá fazer tudo sozinho e a gente só precisa conferir novamente o phpinfo() digitando no navegador:

http://localhost/

E também podemos checar novamente o funcionamento das ferramentas de qualidade de código:

O PHP Code Beautifier:

$ docker run -i --rm -v $(pwd):/project -v $(pwd)/tmp-phpqa:/tmp -w /project jakzal/phpqa:alpine phpcbf --standard=PSR2 --encoding=utf-8 -n -p .

E o PHP Code Sniffer:

$ docker run -i --rm -v $(pwd):/project -v $(pwd)/tmp-phpqa:/tmp -w /project jakzal/phpqa:alpine phpcs --standard=PSR2 --encoding=utf-8 -n -p .

Se quiserem ver como ficou o meu repositório no Github acessem: https://github.com/danilolutz/ambiente-php

Bom galera, por hoje é só…

Por favor, não deixem de compartilhar, comentar e deixar seu feedback.

Referências:

--

--

Danilo Lutz

Obsessed for learning. OOP, PHP, C# and Python lover. Since 2003 coding...