WEB-d Développement Web

PHP, SQL, HTML5, CSS3, Javascript, Mootools, Référencement, SEO, CMS, e-commerce, Apache, Linux, Ubuntu, ...

Détecter les copier-coller avec PHPCPD

PHP Copy-Paste Detector (PHPCPD) permet, comme son nom l'indique de détecter si du code PHP a été copié-collé à plusieurs endroits du projet. Ceci est généralement le signe d'une application mal conçue, ce qui fait de PHPCPD une aide précieuse pour estimer la qualité d'un application PHP.

L'installation se fait simplement grâce à PEAR :


sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover components.ez.no

sudo pear upgrade pear

sudo pear install phpunit/phpcpd

Et l'utilisation est tout aussi simple:

phpcpd /mon/projet/php

PHP Copy-Paste Detector

La version actuellement disponible souffre malheureusement d'un petit bug qui affiche des "PHP Notice: Undefined offset:...". Il est possible de le corriger en éditant manuellement le fichier /usr/share/php/PHPCPD/TextUI/Command.php et en remplaçant les lignes 247 et suivantes par :


$_files = array();
$i = 0;
foreach ($files as $file) {
  $_files[$i] = explode(DIRECTORY_SEPARATOR, $file);
  if (empty($_files[$i][0])) {
    $_files[$i][0] = DIRECTORY_SEPARATOR;
  }
  $i++;
}
 

La description complète du bug et les solutions possibles sont discutées sur cette page :https://github.com/sebastianbergmann/phpcpd/issues/14.

Articles similaires