web-dev-qa-db-fra.com

Automatiser les contrôles d'appels obsolètes?

J'ai récemment commencé à réorganiser et à rééditer certains plugins WordPress abandonnés (mais importants). Alors que je parcours le code en corrigeant d’autres bugs, mon IDE met en évidence les appels de fonction obsolètes pour moi, ce qui est fantastique!

Je les répare immédiatement quand je les trouve et passe à autre chose.

Tout ce que je n'attrape pas est appelé par un plug-in Log Deprecated Calls ou en définissant WP_DEBUG sur true.

Mais ces deux approches sont très inefficaces. Dans ce cas, j’ai besoin d’ouvrir le fichier PHP et d’analyser manuellement chaque ligne de code à la recherche d’un appel obsolète. Dans le cas contraire, je dois attendre que l'appel déconseillé soit appelé par WP avant d'être signalé par le système.

Existe-t-il un moyen plus simple ou un outil que je peux utiliser qui analyse les plugins et les thèmes WP et identifie toute utilisation de fonctionnalités obsolètes?

4
EAMann

Votre question m'a inspiré à créer un plugin que je lance depuis plusieurs mois. Je l'appelle Deprecation Checker. Par défaut, il analyse (de manière récursive) les répertoires plugin et theme pour rechercher des fonctions obsolètes. La liste des fonctions provient directement des fichiers WP obsolètes.

Il affiche ensuite une liste de Nice comprenant le numéro de ligne, le chemin du fichier, l'ancienne fonction et la fonction recommandée à utiliser à sa place.

Il existe plusieurs filtres pour ajouter des chemins personnalisés et des fonctions obsolètes personnalisées pour vos propres utilisations. Vous pouvez également désactiver facilement l'analyse du répertoire plugin/theme.

Vous pouvez le télécharger ici: http://coderrr.com/deprecation-checker/ (bientôt sur WP.org)

Une fois activé, accédez au menu d'administration Outils.

5
Brian Fegter

Ehm, thème plugin ? :) Il est configuré pour les thèmes, mais assez facile à utiliser pour les parties:

require WP_PLUGIN_DIR . '/theme-check/checkbase.php';
$check = new Deprecated();
$path  = 'c:\server\www\dev\wp-content\plugins\deprecated.php';
$files = array( $path => php_strip_whitespace( $path ) );
$check->check( $files, array(), array() );
var_dump( $check->getError() );

Notez qu’il contient des listes de fonctions obsolètes codées en dur, qui peuvent ou non suffire à vos besoins.

3
Rarst

Eh bien, le plus long moment sera de rassembler une liste de toutes les fonctions obsolètes. Wordpress.org a une page pour cela ici , mais comme cela peut ne pas être courant, je vous suggère de parcourir les 5 fichiers énumérés et de rechercher " fonction "pour obtenir une meilleure liste. Une fois que vous avez la liste dans un fichier texte (un nom de fonction par ligne), placez ce fichier texte dans/wp-content et exécutez cette commande à partir de ce répertoire (en supposant que * nix et ssh) - grep -rnf deprecatedfunctionlist.txt ./ > files.txt - recherche récursive dans le fichier/wp. -content directement et affiche un fichier texte dans ce répertoire, répertoriant les fichiers et les lignes (avec les numéros de ligne) sur lesquels ces fonctions apparaissent. De cette façon, vous pouvez voir exactement quelles fonctions résident dans quels fichiers. Je suis sûr qu'il existe une solution plus élégante, mais cela devrait vous aider à démarrer!

2
SickHippie

Comme Theme Checker n’est plus supporté, nous pouvons utiliser le nouveau plugin "Noter les recommandations obsolètes" .

Après l’installation, allez simplement dans "Outils -> Appels obsolètes"

0
Samuel