Admettons que vous avez un client qui vous demande de mettre en conformité un vieux site en PHP 4.3 pour qu'il tourne sur une version plus récente de PHP, par exemple en PHP 5.6.
On pourrait bien entendu parcourir tous les fichiers sources pour traquer toutes les fonctions obsolètes ou en voie de l'être, mais cela risque d'être un poil fastidieux ...
Alors on va automatiser cette recherche grâce à un plugin de PHP Code sniffer. Cet utilitaire va nous permettre d'obtenir une jolie liste de tout ce que l'on aura à modifier.
Installation des utilitaires
PHP Code Sniffer
Il existe deux façons d'installer PHP Code sniffer :
La version simple
pear install PHP_CodeSniffer
En utilisant l'installateur Pyris de Pear.
php pyrus.phar install pear/PHP_CodeSniffer
Une fois installé, il faut lui ajouter le plugin qui va se charger d'effectuer la recherche de nos fonctions obsolètes.
Plugin PHPCompatibility
Ce plugin est maintenu sous forme d'un projet Git.
Il faut récupérer le projet dans le répertoire "standards" de Code Sniffer. Pour trouver ce répertoire, un petit locate peut être utile
locate PHP/CodeSniffer/Standards
Une fois dans ce répertoire, on clone le projet
git clone https://github.com/wimg/PHPCompatibility.git
Utilisation
Maintenant que l'on a tout installé, il n'y a plus qu'à lancer la commande suivante dans le répertoire du projet à tester :
phpcs --standard=PHPCompatibility ./
Le résultat obtenu est le suivant
On peut personnaliser la commande pour obtenir ce retour dans un fichier csv.
phpcs --standard=PHPCompatibility --report=csv --report-file=~/tmp/deprecated.csv /chemin/des/sources/du/projet/
On peut même spécifier la version du PHP (ici 5.5) à tester grâce à cette option
--runtime-set testVersion 5.5
Il existe plus d'options utilisables. La commande suivante vous les liste toutes
phpcs --help
A partir de maintenant, je ne peux plus rien pour vous, c'est à vous de corriger toutes les erreurs remontées 🙂