Trouver les fonctions obsolètes en PHP

update

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 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.