SensioLabsInsight vient d’annoncer officiellement la mise en service d’analyse de code dans le cloud. Une solution de plus en plus utilisée pour travailler en groupe.
Proposer des outils en ligne afin que chaque développeur puisse s’en servir sans tout télécharger, cela existe depuis pas mal de temps. IBM, Microsoft, Vmware, Red Hat, Oracle ou des intégrateurs comme Zend proposent des services « en ligne » sur le cloud. Mais proposer des services d’analyse en continu avec l’aide d’un consultant, c’est à notre connaissance extrêmement rare. Les grands fournisseurs de code Microsoft, Oracle, et bien d’autres proposent aussi via des partenaires de l’aide ponctuelle mais généralement associée à une palanquée d‘outils pour travailler en ligne et debugger sommairement ce qui peut l’être. C’est rarement du conseil sur mesure en continu.
L’offre de SensioLabsInsight se limite néanmoins aux projets basés sur PHP (Symfony, Drupal, Magento, WordPress). Ses outils analysent et détectent les problèmes et erreurs d’après plus de 100 règles définies par les experts de la société. Sensiolabs prétend aller au-delà de la simple vérification ponctuelle de la qualité du code grâce à un consultant. Il exécutera des contrôles quotidiens et continus sur les développements. L’objectif est la détection d’erreurs potentiellement nuisibles à la sécurité. Au-dela de la maintenance du code, Sensio labs propose dans son portefeuille de services une estimation du coût de correction des problèmes, un espace de travail collaboratif, l’envoi de notifications, l’intégration à GitHub et des contrôles de sécurité. Pour les débutants, la firme propose des tutoriels pédagogiques pour comprendre les bonnes pratiques à mettre en œuvre.
Une analyse du code en dynamique
L’outil principal appelé SensioLabsInsight effectue le diagnostic complet d’un projet à différents niveaux. Par exemple, le moteur d’analyse dynamique scrute les applications lors de leur exécution pour trouver des bugs et erreurs impossibles à identifier avec une simple analyse statique.
Dans la même approche on peut aussi citer les services de fournisseurs étrangers comme Scrutinizer.
Des méthodes plus classiques
Si l’on veut étudier ses développements PHP en mode dynamique on peut toujours exploiter Xdebug avec ses fonctions de « code coverage » et les classiques « function traces « ou encore l’outil xhprof très comparable à Xdebug. Autre outil incontournable, PHP Tracer Tool, conçu en partie su Xdebug permet aussi une analyse à fois dynamique et statique. Il faut mieux bien sûr commencer par une simple analyse de la syntaxe en mode statique. Dans cet optique, nous avons relevé une bonne douzaine d’outils classiques, il y en a certainement beaucoup plus, les aficionados du PHP nous les communiquerons.
- PHP_Depend
- PHP_CodeSniffer
- HPHPA
- php-sat – sur le site http://strategoxt.org/
- PHP Mess Detector
- PHP AST
- PHP Depend
- PHP Lint
- PHP Call Graph
Pour obtenir une analyse plus fine sur le respect des fonctions de bases, il faut retenir PHP_Parser et token_get_all (sur les primitives).
La documentation des librairies phpdoc et doxygen fournissent aussi les moyens de démarrer l’analyse de code.