segunda-feira, 1 de janeiro de 2018

Usando o PHPCodeSniffer no SublimeText

Em 2014 fiz um post explicando como instalar e configurar o PHPCodeSniffer no Eclipse (Php CodeSniffer validando seu estilo de código PHP no Eclipse), hoje vamos aprender como fazer o mesmo no SublimeText 3.

1. Instalação do Package Control

A forma mais simples de instalar extensões no Sublime é através do Package Control, https://packagecontrol.io/, o gerenciador de pacotes do Sublime. Se você ainda não tem ele instalado, siga as instruções da página de instalação, https://packagecontrol.io/installation, que basicamente é copiar o comando de instalação de acordo com a versão do seu SublimeText no console do Sublime e aguardar o download e instalação. Depois de instalado, o item Pakage Control é adicionado ao menu Preferences.



2. Instalação do Plugin Phpcs - PHPCodeSniffer

O plugin utilizado que faz o PHPCodeSniffer funcionar no SublimeText é o Phpcs, https://packagecontrol.io/packages/Phpcs, sua instalação é feita pelo Package Control.

Clicando no item Package Control do menu Preferences, a tela do gerenciador de pacotes é aberta.


Ao clicar na opção Install Package, aparece uma caixa de seleção com os pacotes disponíveis para instalação. Basta escrever phpcs e clicar no item que o Package Control faz o resto.



3. Instalar o php-pear e o PHP_CodeSniffer

Com o plugin do Sublime instalado, vamos instalar o "motor" para seu funcionamento. Em primeiro lugar, instalamos o gerenciador de pacotes pear do PHP
$ sudo apt install php-pear
Por padrão, o PHP Code Sniffer do SublimeText está configurado para trabalhar usando o padrão PSR2, http://www.php-fig.org/psr/psr-2/, que é o padrão atual usado pela maioria dos Frameworks PHP, inclusive o CakePHP 3. Desta forma, após a instalação PHP_CodeSniffer, o plugin do Sublime já estará funcionando.

$ sudo pear install PHP_CodeSniffer
Criando um arquivo de teste e uma classe vazia, ao salvá-lo, podemos conferir que o phpcs já está trabalhando.




4. PHP_CodeSniffer e CakePHP 2

No artigo de 2014, acrescentei a instalação do pacote de estilos do CakePHP 2, que não segue a PSR2 e sim um padrão próprio do CakePHP. Hoje, se tentarmos instalar CakePHP_CodeSniffer com o pear depois do PHP_CodeSniffer já instalado, obtemos um erro informando que a versão do CakePHP_CodeSniffer é incompátivel com o PHP_CodeSniffer instalado
cakephp/CakePHP_CodeSniffer requires package "pear/PHP_CodeSniffer" (version >= 1.4, version <= 1.5), installed version is 3.2.2
No valid packages found
install failed
Para quem ainda tem projetos usando o CakePHP 2, uma opção é deixar que o PHP_CodeSniffer seja instalado junto com o CakePHP_CodeSniffer deixando que o próprio pear resolva a questão das dependências e instale a versão 1.4 do PHP_CodeSniffer.
Então, se temos o PHP_CodeSniffer instalado, precisamos primeiro desinstalá-lo.
$ sudo pear uninstall PHP_CodeSniffer
Depois podemos adicionar o canal do pear.cakephp.org, se ainda não o fizemos e instalar diretamente CakePHP_CodeSniffer.
$ sudo pear channel-discover pear.cakephp.org
$ sudo pear install cakephp/CakePHP_CodeSniffer

5. Definindo o estilo padrão

O plugin phpcs permite que o padrão de estilo possa ser trocado a qualquer momento.




Mas se quisermos alterar o estilo padrão do CodeSniffer, vamos em Preferences -> PHP Cod Sniffer -> Settings - User e inserimos o padrão CakePHP como valor standard.





Até mais...
Francisco!