PHP_CodeSniffer – uma biblioteca para melhorar seus padrões de codificação PHP
Você quer melhorar seus padrões de codificação PHP? Obviamente sim. Não importa se você é um desenvolvedor PHP novato ou experiente, todos desejam melhorar seus padrões de codificação.
Mas como?
Bem, existem vários recursos disponíveis na Internet que você pode ler e começar a implementar.
Existe mais uma solução que não requer leitura sobre codificação padrão. Em vez disso, ele fornece sugestões para melhorar o tempo de execução dos padrões examinando o arquivo PHP. Dessa forma é melhor, pois você obterá uma sugestão clara junto com o número da linha.
Introdução ao PHP_CodeSniffer
Como o nome sugere, PHP_CodeSniffer cheira o código em seus arquivos ou pastas. Em qualquer lugar, ele fareja o código incorreto e informa onde está o código incorreto e quais etapas devem ser executadas para corrigi-lo. PHP_CodeSniffer atua como seu verificador de código PHP.
É uma biblioteca altamente recomendada para um programador de PHP. Ao trabalhar em um projeto PHP, você não deve entregar seu código ao cliente final até terminar com os padrões de codificação PHP sugeridos pelo PHP_CodeSniffer.
Afinal, o programador PHP deve entregar um código melhor e PHP_CodeSniffer ajuda você a codificar melhor.
Instale PHP_CodeSniffer usando o Composer
Composer é um gerenciador de dependências para PHP. Ele permite que você instale / atualize a biblioteca necessária para o seu projeto.
Você pode instalar PHP_CodeSniffer no diretório raiz do seu projeto. Porém, eu recomendo que você crie uma pasta ‘php_codesniffer’ no diretório raiz e instale a biblioteca dentro desta pasta.
Para instalar o PHP_CodeSniffer usando o composer, abra o prompt de comando no diretório ‘php_codesniffer’ e execute o comando abaixo.
composer require "squizlabs/php_codesniffer=*"
Vamos verificar nossos padrões de codificação PHP
Em seguida, vá para o php_codesniffer/vendor/bin
diretório a partir do prompt de comando. A partir dessa pasta bin, verificaremos nossos padrões de codificação PHP em relação ao PHP_CodeSniffer.
Por exemplo, vamos supor que temos um arquivo chamado index.php em seu projeto. Meu arquivo index.php contém o código abaixo.
<?php
require_once ("vendor/autoload.php");
require_once ("config.php");
TinifysetKey(TINIFY_KEY);
$source = TinifyfromFile("large.jpg");
$resized = $source->resize(
array(
"method" => "cover",
"width" => 150,
"height" => 100
));
$resized->toFile("thumbnail1.jpg");
echo "Image resized.";
$bool = true;
?>
Este código é usado para redimensionar a imagem em PHP usando a biblioteca TinyPNG. Nosso código está funcionando bem e dando o resultado esperado. Mas, perdemos alguns padrões de codificação em nosso arquivo.
Vamos descobrir qual padrão está faltando no arquivo acima.
Verificaremos este arquivo em relação ao PHP_CodeSniffer executando o comando abaixo.
phpcs --standard=PEAR /path/to/your/file
Estamos trabalhando no Windows, portanto, em nosso caso, um comando seria o seguinte.
phpcs --standard=PEAR D:wampwwwapitinypngindex.php
Aqui, ‘–standard = PEAR’ significa que nosso arquivo verificará o padrão definido pelo PEAR.
Depois de executar o comando acima, encontramos alguns erros sobre os padrões de codificação.
Corrija o código usando diretrizes
Vamos dar um exemplo de erro.
Segundo erro dizendo ‘require_once’ é uma instrução, não uma função: nenhum parêntese é necessário
Por esse erro, ficamos sabendo do padrão de inclusão de arquivo externo.
Nosso código abaixo
require_once ("vendor/autoload.php");
require_once ("config.php");
deve substituir por
require_once "vendor/autoload.php";
require_once "config.php";
Este é um exemplo de correção de código. No seu caso, você pode encontrar alguns outros erros. Você deve corrigi-lo seguindo as instruções que recebeu.
A biblioteca PHP_CodeSniffer fornece um comando que corrige automaticamente as violações do padrão de codificação. Lembre-se de que este comando não corrige todos os erros. Ele cuidará de alguns erros menores, como recuo, fechamento de parênteses, etc.
Se você olhar a imagem acima, você notará que um total de 7 erros encontrados em nosso arquivo. Após a lista de erros, veja a linha
‘PHPCBF’ PODE CORRIGIR AS 6 VIOLAÇÕES DE SNIFF MARCADAS AUTOMATICAMENTE
Primeiro erro que está relacionado à falta de comentário de documento de arquivo, temos que cuidar desse comentário de documento. O comando ‘PHPCBF’ não o corrigirá.
Dito isso, vamos escrever o comando para ele.
phpcbf --standard=PEAR D:wampwwwapitinypngindex.php
Na captura de tela, você pode ver que corrigiu 6 erros e 1 restante. O erro restante está relacionado ao comentário do documento do arquivo.
Portanto, adicionaremos o comentário do arquivo e nosso código final será o seguinte.
<?php
/**
* This file will generate the resize version of an image
*
* PHP version 5.6.25
*
* @category Resize_Image
* @package TinyPNG
* @author Sajid <[email protected]>
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @link https://artisansweb.net/resize-image-php-using-tinypng
*/
require_once "vendor/autoload.php";
require_once "config.php";
TinifysetKey(TINIFY_KEY);
$source = TinifyfromFile("large.jpg");
$resized = $source->resize(
array(
"method" => "cover",
"width" => 150,
"height" => 100
)
);
$resized->toFile("thumbnail1.jpg");
echo "Image resized.";
$bool = true;
?>
Agora, se executarmos o script ‘phpcs’, não obteremos nenhum erro de padrão de codificação do PHP.
Nota: PHP_CodeSniffer valida seus arquivos JS e CSS também.