PHP - Sonar

1 1 1 1 1 1 1 1 1 1 Rating 3.50 (3 Votes)
Submit to DeliciousSubmit to DiggSubmit to FacebookSubmit to Google PlusSubmit to StumbleuponSubmit to TechnoratiSubmit to TwitterSubmit to LinkedIn

Sonar est plus qu'un simple outil : c'est une plateforme complète d'audit et de suivi de qualité de code. Attention, cet outil nécessite Java pour fonctionner.

Sonar peut centraliser les informations de nombreux outils, dont PHPUnit ou PHPDepend, au sein d'une interface conviviale. Il ne remplace pas une plateforme d'intégration continue tel que Jenlins ou PHPUnderControl, dont le seul rôle est de vérifier l'intégrité du code au fur à mesure du développement, mais est une vraie plateforme de suivi qualité.

Installation de Sonar

Installation sous Linux/Debian

Sonar n'étant pas dans les dépôts officiels, il faut l'ajouter dans le fichier /etc/apt/sources.list

su
echo "deb http://downloads.sourceforge.net/project/sonar-pkg/deb binary/" >> /etc/apt/sources.list

# Mettre à jour le cache
apt-get update 

# Installer le paquet sonar
apt-get install sonar 

# Lancer Sonar
/etc/init.d/sonar start  

Attendre quelques instant avant que l'URL de Sonar soit accessible
Puis aller à l'adresse http://localhost:9000

Vous arrivez ensuite sur cette page.

73-php-sonar-accueil

Installation des plugins Sonar

Cliquer sur "Log in".

Puis saisisser :

  • Login : admin
  • Password : admin

 Cliquez sur le lien "Settings" :

73-php-sonar-settings

Cliquer sur "Update Center" :

73-php-sonar-update-center

Cliquer sur "Available Plugins" > "PHP" > "Install" :

73-php-sonar-plugins-php

Vous devez redémarrer Sonar pour prendre en compte PHP :

73-php-sonar-plugins-php-restart

 

# Redémarrer Sonar
/etc/init.d/sonar restart

 Installation des outils PHP 

# Installer PHP Pear
apt-get install php-pear 
# Mise à jour de Pear
pear version
pear upgrade pear
# Installer de PHPUnit
pear channel-discover pear.phpunit.de
pear channel-discover pear.symfony-project.com
pear install phpunit/PHPUnit
# Installer PHPDepend
pear channel-discover pear.pdepend.org
pear install pdepend/PHP_Depend 
# Installer PHPMD
pear channel-discover pear.phpmd.org
pear install --alldeps phpmd/PHP_PMD 
# Installer PHP CodeSniffer
pear install PHP_CodeSniffer

La partie serveur est installée, il nous faut désormais installer le "runner" (la partie qui analysera le code).

Télécharger l'archive du runner (voir l'article) et décompressez-la, par exemple nous créerons ici le répertoire bin (dans votre répertoire home) et nous le renommons en sonar-runner (/home/debian/bin/sonar-runner).

Paramétrage de Sonar

Paramètrage de l'analyse

Cliquer sur "Quality Profiles" : 

73-php-sonar-quality-profiles

Sonar fonctionne avec des règles à paramétrer, par défaut l'outil vient avec une série de "profile" déjà paramétré, vous avez également la possibilité de créer votre propre profil. 

Paramètrage du projet

Il faut maintenant créer un fichier "sonar-project.properties" à la racine du projet à analiser.

Ci-dessous un exemple simple :

# Required metadata
sonar.projectKey=my:project
sonar.projectName=My project
sonar.projectVersion=1.0
 
# Paths to source directories.
# Paths are relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Do not put the "sonar-project.properties" file in the same directory with the source code.
# (i.e. never set the "sonar.sources" property to ".")
sonar.sources=srcDir
 
# The value of the property must be the key of the language.
sonar.language=php
 
# Encoding of the source code
sonar.sourceEncoding=UTF-8
 
# Additional parameters
sonar.my.property=value

Maintenant configurons "sonar-project.properties" pour notre projet. Pour le projet, j'ai utilsé le code de l'article PHP - Génération de documentation avec phpDocumentor. Pour tester le code source, vous pouvez aller sur mon GitHub https://github.com/erlem/insset-sonar

# Required metadata
sonar.projectKey=my:calculator
sonar.projectName=Calculator
sonar.projectVersion=1.0
  
# Paths to source directories.
# Paths are relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Do not put the "sonar-project.properties" file in the same directory with the source code.
# (i.e. never set the "sonar.sources" property to ".")
sonar.sources=.
  
# The value of the property must be the key of the language.
sonar.language=php
  
# Encoding of the source code
sonar.sourceEncoding=UTF-8

Ce mettre dans le répertoire du projet (à la racine) puis executer "sonar-runner" dans mon cas (lancer le chemin où vous avez installé "sonar-runner") :

/home/debian/bin/sonar-runner/bin/sonar-runner

Retourner maintenant en page d'accueil de sonar.

73-php-sonar-calculator

Pour voir les détails cliquer sur le projet "Calculator". Sonar va vous informer des différents problèmes que le code peut rencontrer en clair il va analyser votre code en vous permettant de l'améliorer. Ensuite libre à vous de prendre en compte ou non les remarques de Sonar. 

73-php-sonar-calculator-detail

Conclusion

Ce tutoriel vous permet d'apprivoiser Sonar, il y a plein de possibilités, je vous invite à naviguer sur le site http://www.sonarqube.org/

 

 

Submit to DeliciousSubmit to DiggSubmit to FacebookSubmit to Google PlusSubmit to StumbleuponSubmit to TechnoratiSubmit to TwitterSubmit to LinkedIn