Déterminer automatiquement la version minimale de WordPress requise pour un plugin?

22

Lors du développement d'un plugin, existe-t-il un moyen de déterminer automatiquement la version minimale de WordPress requise pour l'exécuter? Je veux m'assurer que l'en- Requirestête est précis, mais vérifier manuellement chaque fois que j'appelle une nouvelle fonction de base est fastidieux et sujet aux erreurs.

Je pense qu'un script pourrait le comprendre assez facilement:

  1. Analysez tous les fichiers dans un plugin.
  2. Parse toutes les instanciations de classe et les appels de fonction en fonction de la new foo( [...] ), foo::bar( [...] ), bar( [...] ), call_user_func( [...] ), etc syntaxe.
  3. Analysez la source WP pour déterminer quand chacune de ces classes / fonctions a été ajoutée à WordPress, en utilisant la @sincebalise phpDoc.
  4. Générez un rapport répertoriant chaque classe / fonction et la version qui a été ajoutée, ainsi que la première version de WordPress qui inclut toutes les classes / fonctions.

J'ai regardé autour de moi mais je n'ai rien trouvé de tel et je n'ai pas le temps de l'écrire moi-même. Quelqu'un connaît-il une solution existante?

Ian Dunn
la source
Ce serait un bon début, merci de l'avoir signalé :)
Ian Dunn
@IanDunn Si vous avez pu trouver une solution à cela, veuillez la partager. :)
its_me
Je n'ai pas encore trouvé de solution.
Ian Dunn
2
Plus j'y pense, plus il semble que WordPress devrait simplement le construire et l'exécuter contre tous les plugins du référentiel afin que le numéro de version soit exact pour tous les plugins pour toujours.
mrwweb

Réponses:

14

J'ai trouvé une solution en tant que service automatisé sur http://wpseek.com/pluginfilecheck/

C'est exactement ce qui a été demandé, y compris la génération d'une liste de fonctions utilisées et une suggestion pour les commentaires de Plugin-Header.

carstenbach
la source
C'est plutôt cool, merci :) Je pense que ce serait beaucoup plus pratique s'il s'agissait d'un plugin WordPress lui-même, plutôt que d'un service Web, mais c'est mieux que rien.
Ian Dunn
2
Malheureusement, c'est aussi «par fichier» - donc pas de téléchargement d'un plug-in complet. Mais toujours une ressource très utile - bonne trouvaille!
Stephen Harris
2
Ce service prend désormais en charge le téléchargement d'un fichier zip, et il analysera automatiquement tous les fichiers qu'il contient :)
Ian Dunn
Existe-t-il un moyen d'ajouter ceci ( de.wpseek.com/pluginfilecheck ) ou une autre alternative dans l'analyse statique du plugin pendant la construction afin que je n'ai pas besoin d'aller sur le site ci-dessus pour vérifier à nouveau n à nouveau et le système de construction générer automatiquement un rapport avec d'autres analyses statiques sur chaque validation.
learning_13
3

Mise à jour: ce n'est plus exact. Voir la réponse de carstenbach .


Eh bien, il semble que la réponse soit "Non, il n'y a pas de solution existante pour cela."

Si quelqu'un voulait en écrire un, cela pourrait être utile:

Je pense que le commentaire de Mark sur la construction de la fonctionnalité dans le référentiel WordPress.org est une très bonne idée, mais cela peut être quelque chose que la communauté doit créer en premier afin de prouver qu'elle est utile, avant que l'équipe principale n'envisage de l'ajouter.

Ian Dunn
la source
2

Eh bien, c'est plus un point de départ, mais il y a cette belle liste de fonctions WP et les versions qui ont été ajoutées / supprimées ici . Malheureusement, cela ne va que jusqu'à WP 3.0.1, mais si vous visez 3.0 comme base, cela vous aidera au moins - s'il n'est pas dans la liste, il a été ajouté plus tard. Vous voudrez peut-être envoyer un e-mail à Ozh et lui demander de mettre à jour la liste, et si l'un de nous obtient la supposition, quelqu'un peut créer un plugin pour vérifier (comme un vérificateur de dépréciation inverse ).

ETA: Per @mrwweb - Liste de crochet d'Adam Brown ! Actuel à 3.3 et remonte waaaaay à 1.2.1, que personne dans leur bon sens ne fonctionnerait plus (date de sortie le 6 octobre 2004).

SickHippie
la source
2
J'ajouterais la liste des crochets d'Adam Brown par version (retour à 1.2.1!) Qui serait également bon à vérifier.
mrwweb
Merci pour le lien vers le plugin Deprecation Checker, qui pourrait fournir du code utile sur lequel s'appuyer si j'ai le temps d'écrire cela.
Ian Dunn
C'est un plugin génial, par l'utilisateur WPSE Brian Fegter.
SickHippie
0

Je pense que la réponse réside dans les avis obsolètes - vous devriez développer avec WP_DEBUG true - que vous les affichiez ou les journalisiez est votre appel, mais WP vous avertira si vous utilisez une fonction obsolète.

Il serait possible d'analyser @since comme vous le dites, mais les outils ne peuvent vous emmener jusqu'ici - la familiarité avec la base de code et la vérification manuelle peut être la voie à suivre.

Chris Cox
la source
1
Je pense que vous avez répondu à l'inverse de la question. La question veut déterminer jusqu'où va le support pour les fonctions qui sont actuellement prises en charge (par exemple, une fonction que votre plugin utilise a été introduite dans 3.1 afin que votre plugin ne fonctionne pas dans les versions antérieures, mais cette fonction ne génère pas d'erreur ou d'avis car il est pris en charge maintenant.)
mrwweb
Tu as raison, sers-moi bien pour poster fatigué. Ensuite, je suggérerais de le vérifier manuellement par rapport à la dernière version majeure et de l'utiliser comme point de départ arbitraire, car il est dans l'intérêt de tous d'encourager les utilisateurs à maintenir leur WP à jour. Une fois qu'un point de départ a été établi, les messages de validation sont probablement le meilleur endroit à consulter pour maintenir la version requise à jour, car toute refactorisation pour éviter les fonctions et méthodes obsolètes doit y être notée.
Chris Cox
En regardant wordpress.org/about/stats, je dirais que la version 3.2 est une belle version, car toutes les versions antérieures sont statistiquement insignifiantes.
Chris Cox
Merci pour les idées Chris, mais l'essentiel ici était d'obtenir une solution automatisée. Cependant, vous faites valoir que les versions antérieures à 3.2 sont statistiquement non significatives.
Ian Dunn
Je vais vous faire un marché - faites-moi savoir si vous abandonnez et écrivez-en un, et je vous ferai savoir si j'arrive à en écrire un. C'est une bonne idée et ce serait un outil utile dans la boîte à outils de n'importe qui.
Chris Cox