If you want to see a live example of the capabilities of the PHP plugin, you can have a look at the analysis of the PHP CodeSniffer project on Nemo.
Description / Features
The plugin enables analysis of PHP projects within Sonar.
It relies on well-known external tools: PHPUnit, PHP Depend, PHPMD and PHP_CodeSniffer.
- Install the PHP Environment
- Install the Sonar PHP plugin through the Update Center or download it into the SONAR_HOME/extensions/plugins directory
- Restart the Sonar server
Run a Sonar Analysis with the Sonar Runner (Recommended Way)
To launch a Sonar analysis of your PHP project, use the Sonar Runner.
Run a Sonar Analysis with the other Analyzers
Disabling or enabling external tools on demand
It is possible to disable each external tool. By default, all the external tools are enabled.
Reusing existing reports
To reuse existing reports from PHP Depend, PHPUnit, etc.:
- Put the previously generated report into $PROJECT_HOME/target/logs
- Set the property 'sonar.<external_tool>.analyzeOnly' to 'true'
- Set the 'sonar.<external_tool>.fileName' to the name of the report
Note that the reports should be generated with the recommended version of each tool. Otherwise you may face some incompatibility issues.
FAQ and Troubleshooting
Extending Coding Rules
See the tutorial to extend coding rules with PHP_CodeSniffer and/or PHPMD.
- PHP 1.2 - short-term activity (see the JIRA open tickets)
- Improve the PHP CodeSniffer rule repository (adding missing parameters, descriptions, ...)
- Work on the "Sonar Way", PEAR and Zend profiles (<= for PHP gurus! )
- PHP 2.0 - mid-term activity
- Handle multiple files with the same name
- Consider root folders as "Projects"
- Non structured PHP files
- If it turns out that those tickets are technically difficult/long to implement, then they can be postponed