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
curl-OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
PEAR
pear install PHP_CodeSniffer
Composer
composer globalrequire”squizlabs/php_codesniffer=*”
Para essa demostração irei utilizar o CURL para obter o arquivo .phar. A estrutura de diretório e arquivo será a seguinte:
- App
Abaixo vemos a estrutura de nossa classe:
<?php
classMyClass{
/**
* Username.
* @var [type]
private$name;
/**
* Set username
* @param string $name username
publicfunctionsetName($name){
if($name)
$name=trim($name);
$name=strip_tags($name);
$this->name=$name;
/**
* Get username.
* @return string
publicfunctiongetName(){
return$this->name;
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.
php phpcs.phar — standard=PSR2 MyClass.php
Após a execução do comando será exibido o resultado da análise:
No resultado podemos analisar:
- Quantidade de erros Encontrados.
- Primeira coluna:
- A linha onde o erro se encontra.
- Segunda coluna:
- 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!
Get Diego Brocanelli’s stories in your inbox
Join Medium for free to get updates from this writer.
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 recompensá é certa, pois na próxima vez o esforço e as dores de cabeça serão menores.
<?php
namespaceApp\Test;
classMyClass
/**
* Username.
* @var [type]
private$name;
/**
* Set username
* @param string $name username
publicfunctionsetName($name)
if($name){
$name=trim($name);
$name=strip_tags($name);
$this->name=$name;
/**
* Get username.
* @return string
publicfunctiongetName()
return$this->name;
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
php phpcs.phar — report=summary — standard=PSR2 MyClass.php
Acompanhamento do processo
Devemo utilizar o comando -p e assim para cada arquivo com erro será exibido o caractere “E” no terminal.
php phpcs.phar-p — standard=PSR2 MyClass.php
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 ferramente.
Um grande abraço a todos e até a próxima.
Originally published at www.diegobrocanelli.com.br on May 13, 2016.





