Ambiente de Desenvolvimento PHP com Docker - Parte 2 - Qualidade de Código & Git
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:
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:
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:
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.
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:
$ 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:
- https://docs.docker.com/
- https://docs.docker.com/compose/
- https://hub.docker.com/_/php/
- https://hub.docker.com/r/jakzal/phpqa/
- https://git-scm.com/
- https://github.com/
- https://code.visualstudio.com/
- https://www.mysql.com/products/workbench/
- https://github.com/squizlabs/PHP_CodeSniffer
- E um pouco de experiência pessoal e junção de conhecimentos.