La qualité est un problème récurent dans les applications php. En effet, le php est un langage hautement permissif et très facile d’accès. Ceci donne certains codes disponibles sur la toile de bien piètre qualité voir carrément nocifs pour ceux ayant un tant soit peu de trafique sur leur serveur. Lors de ma participation aux derniers eZ Day, j’ai eu la chance d’assister à une conférence donnée par Sebastian Bergmann le Mr de qualité en php et j’ai trouvé ses initiatives plutôt intéressantes.
Sur le plan professionnel, nous avons également fait le choix de mettre en avant la qualité dans la réalisation de nos projets et c’est donc tout naturellement que nous nous sommes tournés vers une solution d’intégration continue et la suite d’utilitaire phpUnit.
Pour ce qui est des PIC compatibles php à l’heure où j’écris ces quelques lignes il en existe que 2 à savoir phpUnderControl et Xinc. La seconde ne m’ayant pas donné entière satisfaction, j’ai donc fait le choix d’utiliser phpUC. Le choix est d’autant plus judicieux qu’elle s’intègre parfaitement avec eZ Publish (quelques modifications pour lui donner à manger un doc Doxygen à la place de phpDocumentor).
Bref, autant de disgrétions pour annoncer que Christof Damian et moi-même (entre autre…) avons entrepris un travail de packaging qui fait qu’aujourd’hui la plupart des outils d’assurance qualité pour le php sont disponibles dans Fedora et RHEL (merci Remi).
yum install php-phpunit-phploc
yum --enablerepo=updates-testing install php-phpunit-phpcpd
yum install php-pear-PHPUnit
yum --enablerepo=updates-testing install php-phpunit-File-Iterator
- etc…
Ne reste plus que phpUnderControl… Allez, maintenant vous n’avez plus d’excuses pour produire du code de daube avec de la duplication de code partout et de la complexité cyclomatique dans tout les sens ;-).
De Eric le 4 décembre 2009
Enfin je trouve quelqu'un qui utilise phpUnderControl :D
Par contre j'ai un gros problème avec phpUC : à chaque fois que les tests unitaires d'un projet se lancent, le processus ne s'arrête jamais une fois les tests terminés.
Et puisque les tests s'exécutent toutes les 30 minutes, j'ai jusqu'à 48 processus de 100mo en mémoire et là mon serveur me fait la tronche. La seule "solution" que j'ai trouvé c'est de relancer phpUC toute les 2 heures...
J'ai certainement fait une fausse manip quelque part, je ne sais pas si tu as rencontré ce problème ?