Conteúdos

Verificando PSR-2 direto no editor

A PSR-2 nos dá diretrizes de como formatar o código, a fim de melhorar a integração entre bibliotecas, o compartilhamento de código entre equipes e minimizar a guerra entre TAB e espaço.

Para ficar mais fácil ainda, podemos usar plugins no nossos editores de texto para verificar automaticamente esse padrão.

PHP Code Sniffer

PHP Code Sniffer é uma ferramenta de linha de comando usada para verificar nosso código em diversos padrões, inclusive a PSR-2. Precisaremos dele instalado para os plugins funcionar.

Para instalar rode o composer para instalar globalmente (ficando assim disponível em qualquer lugar do sistema):

1
composer global require "squizlabs/php_codesniffer=*"

Com ele instalado, podemos verificar o código desse modo:

1
phpcs --standard=PSR2 /tmp/index.php

Mas queremos mágica, então vamos configurar nossos editores para fazer isso automaticamente.

VIM

Para o vim vamos usar o Syntastic, ele é um verificador “universal”, no qual você pode configurar qual a linguagem e qual o verificador.

Para instalação no vim, usando o Plug:

1
Plug 'scrooloose/syntastic', {'do': 'composer global require squizlabs/php_codesniffer' }

Estou usando o do do Plug para rodar o composer depois da instalação e atualização do plugin.

Para configurá-lo adicione no seu .vimrc:

1
2
let g:syntastic_php_checkers=['php', 'phpcs']
let g:syntastic_php_phpcs_args='--standard=PSR2'

Agora sempre que salvar o arquivo ele vai mostrar os erros no arquivo.

http://res.cloudinary.com/grupo-toneladas/image/upload/v1495562861/Screenshot_20170523_150640_mdckbx.png

Sublime Text

No Sublime Text, usando o Package Control, procure por phpcs:

http://res.cloudinary.com/grupo-toneladas/image/upload/v1495563104/Screenshot_20170523_151032_g4awtd.png

Após a instalação, edite se arquivo de configuração em Preferences -> Package Settings -> PHP Code Snifer -> Settings User, adicionando:

1
2
3
4
5
{
  "phpcs_execute_on_save": true,
  "phpcs_executable_path": "~/.composer/vendor/bin/phpcs",
  "phpcs_additional_args": { "--standard": "PSR2" }
}

Ficando assim:

http://res.cloudinary.com/grupo-toneladas/image/upload/v1495564012/Screenshot_20170523_152637_yhwl4p.png

Daí ao salvar o arquivo, ele vai mostrar as mensagens de erro.

http://res.cloudinary.com/grupo-toneladas/image/upload/v1495564095/Screenshot_20170523_152746_t4rkhk.png