PHP CodeSniffer

Olá pessoal tudo bem?

Hoje temos diversas ferramentas que nos auxiliam em nosso dia a dia, para que tarefas repetitivas sejam realizadas de formas mais práticas e eficientes. Dito isso trago uma ferramenta (que não é nova) porem que irá ajudar com certeza, poupando muito tempo no seu dia.

O nome desta ferramenta é PHP CodeSniffer, e sua finalidade é analisar os padrões em seu código, auxiliando na qualidade do código produzido.

Podemos acessar a ferramenta em seu site, ou seu repositório no GitHub.

Instalação

Requerido PHP 5.1.2 ou superior (Pelo amor de Deus, se você usa uma versão inferior ou até mesmo inferior a 5.3, corra e atualize o seu PHP AGORA!!!).

Podemos obter o PHP CodeSniffer de diversas maneiras, sendo:

CURL

PEAR

Composer

Para essa demonstração irei utilizar o CURL para obter o arquivo .phar. A estrutura de diretório e arquivo será a seguinte:

  • App
    • MyClass.php
    • phpcs.phar

Abaixo vemos a estrutura de nossa classe:

Como podemos notar, estamos infringindo diversas regras da PSR nesta pequena classe, agora imagine analisar 5, 9 ou 20 classes para verificar se algum programador não deixou escapar nada.

Para realizar o processo de scan, devemos acessar o diretório onde está contido as classes que deseja analisar.

Após acessar o diretório devemos executar o seguinte comando.

 

Após a execução do comando será exibido o resultado da análise:

segund_scan

No resultado podemos analisar:

  • Quantidade de erros Encontrados.
  • Primeira coluna:
    • A linha onde o erro se encontra.
  • Segunda coluna:
    • Mensagem de ERRO.
  • Terceira coluna:
    • A descrição do erro encontrado.
  • E no final, o tempo decorrido da análise e o total de memória utilizada.

Ok, descobri o erro e agora? Você deve corrigir os erros!

Sim isso é óbvio de se ler, porem na prática é muito comum desenvolvedores jogarem para debaixo do tapete toda a sujeira encontrada (ou produzida). E esta atitude só gera mais trabalho, siga a lei do escoteiro “Deixe o local melhor do que você o encontrou”, sim isso dá trabalho, porem a recompensa é certa, pois na próxima vez o esforço e as dores de cabeça serão menores.

 

Após corrigirmos o que nos foi sugerido, vamos novamente executar a análise para garantir total correção de erros.

Viram como o processo facilita nossa vida, claro que o que demonstrei para vocês é apenas uma pequena parte do potencial desta ferramenta, caso queiram se aprofundar acessem a documentação.

Vou descrever algumas opções de configuração bem interessantes para utilizar no processo de análise.

Gerar um relatório sintético

Devemos utilizar o complemento –report=summary

relatorio_sintetico_codesniffer

Acompanhamento do processo

Devemos utilizar o comando -p e assim para cada arquivo com erro será exibido o caractere “E” no terminal.

erros_codesniffer

Especificar o code standard desejado

Sim podemos especificar qual o padrão o scan deve analisar, com isso dispomos das seguintes opções:

  • PEAR (default)
  • PHPCS
  • PSR1
  • PSR2
  • Squiz
  • Zend

Recomendo a análise utilizando as opções PSR1 e PSR2, pois naturalmente seguem os padrões do PHP-FIG.

Apesar de sua fácil utilização, e aparentemente quase nenhum requerimento, analise e valide o ganho de produtividade que a ferramenta irá lhe proporcionar. Pois podemos realizar analises rápidas que nos orientam no processo de codificação, melhorando a qualidade do nosso código.

Convido a todos que testem e deixem nos comentários o que acharam da ferramenta.

Um grande abraço a todos e até a próxima.

5 comentários sobre “PHP CodeSniffer”

  1. Opa, tudo bem Ramiro, sim de fato temos como automatizar essa tarefa, ou até mesmo usar outras ferramentas para realizar as correções de forma automática (estou trabalhando exatamente neste post agora mesmo 🙂 ).

    Obrigado pela dica, espero que tenha gostado do post 🙂

    1. Olá, obrigado pelo comentário fico muito feliz que tenha gostado do conteúdo.

      De fato, temos a nossa disposição um leque de ferramentas para automatizar nossas tarefas, obrigado pela indicação 🙂

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *