How to use CodeSniffer on Windows ? How to setup the PHP CodeSniffer on Windows ? These questions come to mind when you see various articles, tutorials which provides ways/steps to setup this on Linux. So here are simple steps to setup PHP CodeSniffer on Windows. Before going into this, for those who don’t know what is CodeSniffer? here is a simple answer.
If you are a developer or code reviewer and you want to check the code for any mistakes/if the code following particular coding standards, then CodeSniffer is a good tool to achieve that.
PHP_CodeSniffer is a PHP5 script that tokenises PHP, JavaScript and CSS files to detect violations of a defined coding standard. It is an essential development tool that ensures your code remains clean and consistent. It can also help prevent some common semantic errors made by developers.
Now, lets setup CodeSniffer to check if our code follows a defined coding standard. 🙂
My setup environment:
- Windows 7 Professional,
- XAMPP for Windows( Apache, MySQL, PHP and Perl ) and the PHP install directory is C:xamppphp
Steps:
- Open windows command prompt by going.
Start -> Run -> type in ‘ cmd ‘ -> press Enter - Go to your php install directory.
123cd C:xamppphp - Then type in the command to install PHP Code_Sniffer from the pear.php.net
1234pear install PHP_CodeSnifferpear install --alldeps PHP_CodeSniffer - After completion, to check successfull installation run this command.
123phpcs -i
As the CodeSniffer is installed now, you can start using this to check files by using below commands. ( To run any commands, you should be inside C:xamppphp )
Checking a single file or folder:
1 2 3 4 |
$ phpcs /path/to/code/myfile.inc $ phpcs /path/to/code/my_dir |
Sample PHP_CodeSniffer output with no warnings:
1 2 3 |
$ phpcs -n /path/to/code/myfile.php |
1 2 3 4 5 6 7 8 9 10 11 12 |
FILE: /path/to/code/myfile.php -------------------------------------------------------------------------------- FOUND 5 ERROR(S) AFFECTING 5 LINE(S) -------------------------------------------------------------------------------- 2 | ERROR | Missing file doc comment 20 | ERROR | PHP keywords must be lowercase; expected "false" but found "FALSE" 47 | ERROR | Line not indented correctly; expected 4 spaces but found 1 51 | ERROR | Missing function doc comment 88 | ERROR | Line not indented correctly; expected 9 spaces but found 6 -------------------------------------------------------------------------------- |
Specifying a coding standard to use:
1 2 3 |
$ phpcs --standard=PEAR /path/to/code/myfile.inc |
For more usage commands: http://pear.php.net/manual/en/package.php.php-codesniffer.usage.php
How to add a new coding standard definition into PHP CodeSniffer ?
Lets take WordPress coding standard for demo purpose found here: https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
Steps:
– If you have git installed on you machine, then run this command on git bash.
1 2 3 |
$ git clone git://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git C:/xampp/php/pear/PHP/CodeSniffer/Standards/WordPress |
If you don’t have git on your machine, then
- Download the zipped file from Github repository here: https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/archive/master.zip
- Unzip it.
- Create a new directory named ‘ WordPress ‘ inside C:xamppphppearPHPCodeSnifferStandards
Note: This directory name should exactly match with the Coding Standard definition name ‘WordPress’ - Paste all the content of that zip file into this directory and you are done.
Now you can check any file for WordPress coding standard.
1 2 3 |
phpcs -n --standard=WordPress /path/to/code/cron.php |