Sitemap

PHP CodeSniffer

3 min readMay 13, 2016

--

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.

--

--

Diego Brocanelli
Diego Brocanelli

Written by Diego Brocanelli

Programmer, lover beautiful code and web development.