Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 95 Next »

Live example


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.


  1. Install the PHP Environment
  2. Install the Sonar PHP plugin through the Update Center or download it into the SONAR_HOME/extensions/plugins directory
  3. 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.

Sample projects are available on GitHub that can be browsed or downloaded: /projects/languages/php.

Run a Sonar Analysis with the other Analyzers

Maven and Ant can also be used to launch analysis on PHP projects.



Disabling or enabling tool on demand

One important thing is the ability to run or disable each php tool individually.To do so, simply add the following properties to your pom.xml .

Use existing files to generate dashboard

Another interesting feature is the ability to use already generated files from pdepend, phpmd, phpunit and to get the sonar dashboard working. To do so, you have to be sure that log files for these tools are located inside $PROJECT_HOME/target/logs/. Filename must be: pdepend.xml, pmd.xml, codesniffer.xml, php-cpd.xml, phpunit.xml and phpunit-coverage.xml . If you generate you files from another tool (like ant), be sure to make a copy of these files inside target/logs directory. Also, you have to stick to the required version of tools supported from you version of Sonar PHP Plugin. Because sonar php plugin uses files located on the file system to make them match with violations, you have to be sure that your source directories and test directories are correctly referenced in your pom.xml even your project is not build with maven.

Here is an example:

Extending Coding Rules

See the tutorial to extend coding rules with PHP_CodeSniffer and/or PHPMD.

FAQ and Troubleshooting


  1. PHP 1.2 - short-term activity (see the JIRA open tickets)
    1. Improve the PHP CodeSniffer rule repository (adding missing parameters, descriptions, ...)
    2. Work on the "Sonar Way", PEAR and Zend profiles (<= for PHP gurus! (wink) )
  2. PHP 2.0 - mid-term activity
    1. Handle multiple files with the same name
    2. Consider root folders as "Projects"
    3. Non structured PHP files
    4. If it turns out that those tickets are technically difficult/long to implement, then they can be postponed

Change Log


Release 1.1 (${entries.size()} issues)

Type Key Summary Priority



Release 1.0 (${entries.size()} issues)

Type Key Summary Priority



Release 0.6 (${entries.size()} issues)

Type Key Summary Priority



Release 0.5 (${entries.size()} issues)

Type Key Summary Priority



Release 0.4 (${entries.size()} issues)

Type Key Summary Priority



Release 0.3 (${entries.size()} issues)

Type Key Summary Priority



Release 0.2 (${entries.size()} issues)

Type Key Summary Priority

  • No labels