Automatiser les vérifications d'appels obsolètes?
4 réponses
- votes
-
- 2012-02-29
J'ai étéinspirépar votre questionpour créer unplugin quej'utilise depuisplusieursmois.Je l'appelle le vérificateur de dépréciation.Par défaut,il analyse les répertoires dupluginet duthème (récursivement)pourtrouver lesfonctions obsolètes.La liste desfonctionsprovient directement desfichiers obsolètes WP.
Ilgénèreensuite unebelle liste comprenant lenuméro de ligne,le chemin dufichier,l'anciennefonctionet lafonction recommandée à utiliser à saplace.
Ilexiste quelquesfiltrespour ajouter des cheminspersonnaliséset desfonctions obsolètespersonnaliséespour vospropres utilisations.Vouspouvez également désactiverfacilement l'analyse des répertoires deplugins/thèmes.
Vouspouvez letéléchargerici: http://coderrr.com/deprecation-checker/ (sera sur WP.orgbientôt)
Unefois activé,accédez aumenu d'administration des outils.
I was inspired by your question to create a plugin that I've been kicking the can on for several months. I'm calling it Deprecation Checker. By default, it scans the plugin and theme directories (recursively) to find deprecated functions. The functions list is sourced directly from the WP deprecated files.
It then outputs a nice list including line number, file path, old function, and recommended function to use in its place.
There are a couple of filters to add custom paths and custom deprecated functions for your own uses. You can also turn off plugin/theme directory scanning easily.
You can download it here: http://coderrr.com/deprecation-checker/ (will be on WP.org soon)
Once activated, browse to the Tools administration menu.
-
Si seulement vous aviez répondu avant de donner laprime ... :-( Excellenttravail,cependant!If only you'd answered before I gave the bounty away ... :-( Awesome work, though!
- 0
- 2012-02-29
- EAMann
-
@EAMann Pasbesoin deprime.:) Jepensaisjuste que cela aiderait la communauté.@EAMann No need for a bounty. :) I just thought this would help the community.
- 0
- 2012-02-29
- Brian Fegter
-
- 2012-02-27
Euh,plugin de vérification dethème ?:) Ilest configurépour lesthèmes,mais assez simplepour utiliser desparties:
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 defonctions obsolètes codéesen dur,quipeuvent ounon être suffisantespour vosbesoins.
Ehm, Theme Check plugin? :) It is set up for themes, but easy enough to make use of parts:
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() );
Note that it has lists of deprecated functions hardcoded, which might or might not be enough for your needs.
-
Jen'aijamais utilisé la vérification dethème auparavant,doncje ne savaispas qu'il avait cettefonctionnalité.Je vais certainement yjeter un coup d'œil!I haven't used Theme Check before, so I wasn't aware it had that functionality. I'll definitely take a look at that!
- 0
- 2012-02-27
- EAMann
-
- 2012-02-27
Ehbien,leplus long sera de rassembler une liste detoutes lesfonctions obsolètes.Wordpress.org a unepagepour cela ici ,mais comme celapeut ounon être actuel,je leferaissuggérez deparcourir les 5fichiers répertoriéset de rechercher «fonction»pour obtenir unemeilleure liste.Unefois que vous avez la liste dans unfichiertexte (unnom defonctionpar ligne),placez cefichiertexte dans/wp-contentet exécutez cette commande àpartir de ce répertoire (en supposant que *nixet ssh) -
grep -rnf deprecatedfunctionlist.txt ./ > files.txt
Cela recherchera récursivement le contenu/wp directementet affichera unfichiertexte dans ce répertoire répertoriant lesfichierset les lignes (avec lesnuméros de ligne) sur lesquels cesfonctions apparaissent.De cettefaçon,vouspouvez voirexactement quellesfonctions résident dans quelsfichiers.Je suis sûr qu'ilexiste une solutionplus élégante,mais cela devrait vous aider à démarrer!Well, the longest bit is going to be getting together a list of all the deprecated functions. Wordpress.org has a page for it here, but since that may or may not be current I would suggest going through the 5 listed files and searching for "function" to get a better list. Once you have the list together in a text file (one function name per line), put that text file into /wp-content and run this command from that directory (assuming *nix and ssh) -
grep -rnf deprecatedfunctionlist.txt ./ > files.txt
That will recursively search the /wp-content directly and output a text file in that directory listing the files and lines (with line numbers) those functions appear on. This way you can see exactly which functions reside in which files. I'm sure there's a more elegant solution, but this should get you started!-
Laplupart des versions degrep auront égalementbesoin d'un -n ajoutépour que lesnuméros de ligne soient ajoutés.Most versions of grep will need a -n appended as well in order to get the line numbers prepended.
- 1
- 2012-02-27
- ZaMoose
-
Oh oui -bon appel,j'aitotalement oublié lesnuméros de ligne,carj'utiliserais simplement Findpour lenom de lafonction dans Notepad ++.S'il y aplusieursfonctions dans unfichier,avoir lesnuméros de ligne serait unmust!Éditépour refléter!Oh right - good call, I totally forgot about the line numbers, since I would just use Find for the function name in Notepad++. If there's multiple functions in a file, having the line numbers would be a must! Edited to reflect!
- 0
- 2012-02-27
- SickHippie
-
- 2015-05-25
Le vérificateur dethèmesn'étantplusprisen charge,nouspouvons utiliser denouvelles "Consigner les avis obsolètes" plugin.
Après l'installation,allez simplement dans "Outils -> Appels obsolètes"
As Theme Checker is no longer supported, we can use new "Log Deprecated Notices" plugin.
After install, just go to "Tools -> Deprecated Calls"
J'ai récemment commencé à réorganiseret à relancer certainsplugins WordPress abandonnés (maisimportants).Enparcourant le codepour corriger d'autresbogues,mon IDEmet en évidence les appels defonctions obsolètespourmoi,ce quiestfantastique!
Je les répareimmédiatement lorsqueje lestrouveet queje passe à autre chose.
Tout ce queje ne saispas est appelépar unplugin Log Deprecated Calls ouen définissant
WP_DEBUG
surtrue.Mais ces deux approches sonttrèsinefficaces.Avec un,je dois ouvrir lefichier PHPet parcourirmanuellement chaque ligne de code à la recherche d'un appel obsolète.Avec l'autre,je dois attendre que l'appel obsolète soit appelépar WP avant qu'ilne soit signalépar le système.