Fala pessoal! Hoje quero contar algo para vocês: uma das coisas que mais me enche de orgulho e me faz brilhar os olhos é olhar meus códigos e vê-los limpos, de fácil entendimento para qualquer outro ser humano programador(a) e que esteja seguindo as boas práticas de programação, e no caso, falando de desenvolvimento com WordPress: Coding Standards. Atualmente existem diversas maneiras de aprendê-las e evoluir cada vez mais sua escrita!
Hoje, queria falar sobre o PHPCodeSniffer: ferramenta que revisa seu código e procura por erros, sugere melhorias e em alguns casos também realiza correções automáticas. No caso de desenvolvimento com plugins/temas podemos contar com o WordPress Coding Standards, onde você pode escolher revisar seu código sobre algumas opções, são elas:
- WordPress-Core — WordPress core coding standards
- WordPress-Docs — WordPress inline documentation standards
- WordPress-Extra — Conjunto de regras estendido para as melhores práticas recomendadas, não suficientemente coberto nos padrões de codificação do WordPress.
- inclui WordPress-Core
- WordPress-VIP — regras extentidas para WordPress VIP coding requirements
- inclui WordPress-Core
Se você desenvolve utilizando WP eu sugiro fortemente que você revise seu código com os métodos acima.
Vamos lá, para que você utilize o WP Coding Standards terá de instalar o PHPCodeSniffer:
Linux (Ubuntu 14.04):
sudo pear install --alldeps php_codesniffer
E então:
git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git wpcs
Adicione o pacote wpcs no PEAR, não se esqueça de alterar o caminho.
phpcs --config-set installed_paths /CAMINHO/PARA/wpcs
Agora, para verificar se está instalado rode o comando abaixo que listará todos os pacotes dentro do PEAR, você deverá ver WordPress-Core, Docs, VIP, etc…
phpcs -i
Se instalado corretamente, deverá retornar os pacotes instalados (no seu caso podem não ser todos abaixo, mas os com prefixo WordPress deverão estar):
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra and WordPress-VIP
Para verificar seu código basta rodar:
phpcs --standard=WordPress-Core wp-load.php
O parâmetro –standard define qual método irá seguir para analisar seu código (dentre os explicados no ínicio do post, neste caso eu estou utilizando o WordPress-Core.
Quando encontrar erros que possam ser corrigidos automaticamente, ele exibirá e basta alterar o phpcs por phpcbf:
phpcbf --standard=WordPress-Core wp-load.php
Mac
Instalando o PEAR:
sudo curl -O http://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar
pear upgrade pear
pear upgrade
Instalando o PHPCodeSniffer:
sudo pear install --alldeps php_codesniffer
Veja se está instalado:
phpcs -i
Se instalado corretamente, retornará a seguinte informação:
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz and Zend
Caso retorne o erro abaixo:
Warning: include_once(PHP/CodeSniffer/CLI.php): failed to open stream: No such file or directory in /usr/bin/phpcs on line 22 Warning: include_once(): Failed opening 'PHP/CodeSniffer/CLI.php' for inclusion (include_path='.:') in /usr/bin/phpcs on line 22 Fatal error: Class 'PHP_CodeSniffer_CLI' not found in /usr/bin/phpcs on line 25
Para resolver é fácil, abra o arquivo php.ini:
sudo vim /etc/php.ini
E adicione o path do PEAR:
include_path = ".:/usr/share/pear"
Instale o WPCS (WordPress CodeSniffer):
git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git wpcs
Adicione o pacote wpcs no PEAR, não se esqueça de alterar o caminho.
phpcs --config-set installed_paths /CAMINHO/PARA/wpcs
Verifique novamente:
phpcs -i
Se instalado corretamente, deverá retornar os pacotes instalados (no seu caso podem não ser todos abaixo, mas os com prefixo WordPress deverão estar):
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra and WordPress-VIP
E então:
phpcs --standard=WordPress-Core wp-load.php
O parâmetro –standard define qual método irá seguir para analisar seu código (dentre os explicados no ínicio do post, neste caso eu estou utilizando o WordPress-Core.
Quando encontrar erros que possam ser corrigidos automaticamente, ele exibirá e basta alterar o phpcs por phpcbf:
phpcbf --standard=WordPress-Core wp-load.php
Caso tenha problemas ao utilizar o comando phpcs, utilize este:
php phpcs.phar --standard=WordPress-Core wp-load.php
E para corrigir:
php phpcbf.phar --standard=WordPress-Core wp-load.php
Avisos finais:
Apenas lembrando que neste caso wp-load.php conforme acima é o exemplo de arquivo a ser utilizado, você deverá inserir o caminho dos seus arquivos, ou diretório, caso queira.
Alguns links complementares com mais informações e detalhes:
https://www.jetbrains.com/help/phpstorm/2016.3/using-php-code-sniffer-tool.html
https://github.com/squizlabs/PHP_CodeSniffer
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
É isso, pessoal! Mais uma vez recomendo fortemente o uso, vale muito a pena. Desta forma você terá seus códigos seguindo os padrões exigidos pelos próprios requisitos de contribuição do WordPress e também um desenvolvimento profissional!
Qualquer tipo de dúvida ou informação adicional, basta comentar abaixo!
Espero que tenham gostado! Bom fim de semana 😉