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

To understand how rules extension works in Sonar, please refer to the Extending Coding Rules documentation.

Extending PHP_Codesniffer Rules

PHP_CodeSniffer is built on an extensible architecture where you can define you own rules.

To do so, you just have to create your own rules.xml file following the below format:

This file must be copied in the directory $SONAR_HOME/extensions/rules/php_codesniffer_rules/. You have to restart your Sonar server to make it available for PHP profiles.

The value of the "key" attribute is a combination of different elements: <standard_folder>.<sniff_subfolder>.<sniff_file_without_Sniff_suffix>.<error_name>.
For instance, for the given key above ("PEAR.Commenting.FileComment.TagIndent"):

  • "PEAR" is the folder found in the "Standards" directory of PHPCodeSniffer install directory
  • "Commenting" is the folder found in the "Sniffs" directory of the "PEAR" folder
  • "FileComment" is the name of the PHP file "FileCommentSniff.php" for which "Sniff.php" was removed
  • "TagIndent" is the name of the error that can be found in "FileCommentSniff.php" file

Extending PHPMD Rules

Extending PHPMD works the same way as PHP_CodeSniffer, except that you have to copy your file containing your custom violations in $SONAR_HOME/extensions/rules/phppmd_rules/

This XML file must look like the following example:

Labels
  • None