PHP, Coder, and Code Sniffer in OS X

PHP

I originally used the PHP package bundled with OS X. This doesn’t seem to be easily maintainable since you would have an outdated PHP version. I’ve since replaced this with homebrew-php specifically the package php54.

Note: If you’ve added some configurations in PHP which is most likely located at /etc/php.ini, you might want to copy the custom configurations over to your new PHP ini location which is /usr/local/etc/php/5.4/php.ini in my case. Also, PEAR needs to be reconfigured. brew info php54 or brew install php54 would note that you would need to invoke this commands to clean up PEAR configurations:

chmod -R ug+w /usr/local/Cellar/php54/5.4.38/lib/php pear config-set php_ini /usr/local/etc/php/5.4/php.ini system

I had an old installation of PHP_CodeSniffer and it got confusing when I tried to use phpcs since it was using the old sniffs rather than the ones that I recently updated.

Code Sniffer

Installation of PHPCS is as easy as doing composer global require "squizlabs/php_codesniffer=*".

Coder

Installation of Coder is pretty much straightforward. Everything needed is here. I’ve installed it using drush.

After installating Coder, you’ll need to register the sniffs by invoking phpcs --config-set installed_paths $HOME/.drush/coder/coder_sniffer. Otherwise; you can do phpcs --standard=path/to/sniffs/Drupal -- /path/to/file to do the syntax check.

Note: PHPCS 1.x works with Coder 7.x-2.x while PHPCS 2.x works with Coder 8.x-2.x (source here and here). I’ve installed Coder 8.x-2.x which also works with Drupal 7 modules.

There’s a lot more you can do with PHPCS. One that I find useful is phpcbf. More usage examples here.

Valère JEANTET

IT software and Security Engineer, Open source enthusiast.

Paris, France http://vjeantet.fr