Soucieux de la qualité de votre code, vous pourrez utiliser SonarQube afin de l'analyser et avoir un rapport détaillé des modifications à apporter. Il peut analyser plusieurs langages comme Java, PHP, Python...
Ceci s'effectue par l'installation de plugins, sur le tableau de bord de la plateforme. SonarQube s'inscrit dans une vraie démarche qualité du code en cours de réalisation.
Il lévera des alertes sur la duplication de code, indiquera des erreurs qu'il jugera mineures, majeures, critiques..., vous pourrez voir directement dans l'interface le code incriminé.
Installation de SonarQube
Sous windows, pour installer SonarQube, je dois me rendre sur la page de téléchargement afin de le télécharger en cliquant sur le lien download. La version courante est la 4.2, à l'heure où laquelle j'écris cet article. Par la suite, dézippez le fichier zip dans le répertoire Programmes.
On va installer SonarQube, en tant que service, en ouvrant une invite de commandes, en faisant un clic droit sur le programme, pour éxécuter en tant qu'administrateur. Puis, en ligne de commandes, on va se rendre dans Programmes, là où vous avez installé SonarQube. Après, sur le répertoire bin .Selon la version de votre windows, 32 ou 64 bits, on choisira soit windows-x86-32 ou windows-x86-64. A ce niveau là, on va installer, le service avec InstallNTService.bat.
Pour vérifier si SonarQube a bien été installé comme service, tapez 'services' dans le champ de recherche, après avoir cliquer sur démarrer.
Pour Linux, cette page définit la manière, d'installer la plateforme, selon la distribution, que vous possédez. Pour l'éxécuter en tant que service, selon votre distribution, c'est par ici.
Tableau de bord
Pour se rendre sur l'interface de SonarQube, tapez cette adresse dans votre navigateur : http://localhost:9000
On va installer un plugin, afin de pouvoir analyser du code PHP. Pour cela, on va cliquer, en haut, à gauche sur log in avec les identifiants admin/admin. Pour me rendre, dans la section configuration, je clique sur settings puis à gauche, sur Update Center. Je choisis le volet, Available Plugins et je descends pour trouver le plugin PHP et l'installer.
Après le téléchargement du plugin, il va nous être demandé de redémarrer SonarQube alors on redémarre le service pour le relancer.
Pour l'analyse de notre code, on va installer des librairies nécessaires pou effectuer ces tâches. Ces librairies sont PHP Depend, PHPMD, PHP Unit et PHPCodeSniffer. PHP Depend analyse notre projet et mesure la qualité du code, à travers des métriques, PHP MD qui veut dire, PHP Mess Detector pour signifier des bugs, des méthodes non utilisées...
PHP Unit pour les tests unitaires et enfin, PHPCodeSniffer pour le respect de standards, conventions de code.
On va installer ces librairies par l'intermédiaire de Composer. J'avais déjà parlé de l'installation de Composer, ici.
Le fichier composer.phar doit être à la racine de votre projet. On va créer un fichier composer.json dont le contenu sera comme celui-ci, toujours à la racine de notre projet. Ou alors rajouter ces lignes, si vous aviez déjà, un fichier composer.json:
{ "require": { "pdepend/pdepend" : "1.1.*", "phpmd/phpmd" : "1.5.0", "squizlabs/php_codesniffer": "1.*", "phpunit/phpunit": "3.7.*" } }
Ouvrez une invite de commande, en l'éxécutant en tant qu'administrateur, comme vu plus haut et tapez cette commande, pour installer nos dépendances :
php composer install
Ajout du fichier sonar-project.properties
On va ajouter un fichier, à la racine de notre projet pour configurer l'analyse de celui-ci. Créez un fichier avec le nom sonar-project.properties :
# Required metadata sonar.projectKey=my:blogdev sonar.projectName=blogdev sonar.projectVersion=1.0 # Indiquer ici le projet/dossier à analyser sonar.sources=src/UserBundle # Encoding of the source code sonar.sourceEncoding=UTF-8 sonar.language=php
Pour finir, on va installer le runner, ici, le SonarQube Runner. Placer ce dossier à la racine de votre projet.
On va pouvoir lancer l'analyse du projet en ligne de commandes, en étant à la racine du projet. Je l'ai placé dans Wamp, dans mon projet, pour ma part, je tape :
C:/wamp/www/wamp/blogdev/runner
Voici un aperçu de l'analyse :
Conclusion
SonarQube est un bon outil, pendant le développement d'un projet. Il permet de contrôler et valider la qualité du code. Il peut-être intégré avec Jenkins, l'outil d'intégration continue.
Pour en savoir plus, rendez-vous sur cette page!