Usando PHP_CodeSniffer

Vamos falar um pouco sobre PHP_CodeSniffer hoje, e para falar sobre ele, precisaremos falar sobre padrões, por quê? Porque o PHP_CodeSniffer é um conjunto de dois scripts PHP; o script phpcs principal que verifica arquivos PHP, JavaScript e CSS para detectar violações de um padrão de codificação definido, e um segundo script phpcbf para corrigir automaticamente violações de codificação padrão. PHP_CodeSniffer é uma ferramenta essencial de desenvolvimento que garante que o seu código permanece limpo e consistente.

(Retirado de: https://github.com/squizlabs/PHP_CodeSniffer)

O PHP Framework Interoperability Group (PHP-FIG) é um grupo formado por membros com poder de voto e que representam frameworks PHP e membros não votantes que podem participar e que definem os padrões.

A norma PSR-0, dita a respeito de autoloader. A PSR-1, de normas básica de códificação e a PSR-2, vai além e do básico de normatização do PSR-1. Sugiro a leitura do material já em português:

PSR-1
PSR-2

O PHP_CodeSniffer pode verificar seu código em um desses padrões, ou em algum outro de sua preferência. A última versão vem com os seguinte PEAR, PHPCS, PSR1, PSR2, Squiz e Zend.

Utilizando

Utilizo o PHP_CodeSniffer pelo composer, então, ficaria da seguinte forma o composer.json:

{
    "require-dev": {
        "squizlabs/php_codesniffer": "2.*"
    },
    "config": {
    	"bin-dir": "bin"
    },
    "autoload":{
	"psr-4":{"CodeSnifferExemple\":"src/"}
    }
}

Seguindo essas configurações, executando o comando abaixo, todos os arquivos da pasta CodeSnifferExemple, dentro de src serão analisados e retornará uma lista de erros indicando o qual o problema/aviso para que seja corrigido.

bin/phpcs --standard=PSR2 src/CodeSnifferExemple/.

Reparem que estou passando o Padrão PSR-2.
Após avisar os erros, normalmente o PHP_CodeSniffer avisa também que pode corrigir alguns dos erros para nós, e para isso, usaremos o comando abaixo.

bin/phpcbf --standard=PSR2 src/CodeSnifferExemple/.

Esse comando vai corrigir diversos itens, como por exemplo, espaçamentos no lugar de tabulações, espaçamento entre virgulas nos parâmetros, etc.

Esses comandos podem ser executados também em um arquivo específico, por exemplo:

bin/phpcs --standard=PSR2 src/CodeSnifferExemple/Arquivo.php
bin/phpcbf --standard=PSR2 src/CodeSnifferExemple/Arquivo.php

E como falado antes o padrão pode ser definido conforme suas preferências entre: PEAR, PHPCS, PSR1, PSR2, Squiz e Zend.

Espero que pesquisem mais sobre o PHP_CodeSniffer e estudem seus usos, utilize bin/phpcs -h para verificar todas as possibilidades de uso e bons estudos.

Deixe uma resposta

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