Mindestversion von WordPress für ein Plugin automatisch ermitteln?

22

Gibt es eine Möglichkeit, beim Entwickeln eines Plugins automatisch die Mindestversion von WordPress zu ermitteln, die zum Ausführen erforderlich ist? Ich möchte sicherstellen, dass der RequiresHeader korrekt ist, aber jedes Mal, wenn ich eine neue Kernfunktion aufrufe, manuell zu überprüfen, ist mühsam und fehleranfällig.

Ich denke, ein Skript könnte es leicht genug herausfinden:

  1. Scannen Sie alle Dateien in einem Plugin.
  2. Parsen alle Klasse instantiations und Funktionsaufrufe auf der Grundlage der new foo( [...] ), foo::bar( [...] ), bar( [...] ), call_user_func( [...] ), etc Syntax.
  3. Analysieren Sie die WP-Quelle, um mithilfe des @sincephpDoc-Tags zu bestimmen, wann diese Klassen / Funktionen zu WordPress hinzugefügt wurden .
  4. Erstellen Sie einen Bericht, in dem jede Klasse / Funktion und die hinzugefügte Version sowie die früheste Version von WordPress mit allen Klassen / Funktionen aufgelistet sind.

Ich habe mich umgesehen, konnte aber nichts Vergleichbares finden und habe keine Zeit, es selbst zu schreiben. Kennt jemand eine bestehende Lösung?

Ian Dunn
quelle
Das wäre ein guter Anfang, danke für den Hinweis :)
Ian Dunn
@IanDunn Wenn Sie eine Lösung für dieses Problem gefunden haben, teilen Sie sie uns bitte mit. :)
its_me
Ich habe noch keine Lösung gefunden.
Ian Dunn
2
Je mehr ich darüber nachdenke, desto mehr scheint es, dass WordPress dies einfach erstellen und für alle Plugins im Repository ausführen sollte, damit die Versionsnummer für alle Plugins für immer korrekt ist.
Mrwweb

Antworten:

14

Ich habe eine Lösung als automatisierten Dienst über http://wpseek.com/pluginfilecheck/ gefunden.

Es macht genau das, was verlangt wurde, einschließlich der Erstellung einer Liste der verwendeten Funktionen und eines Vorschlags für die Plugin-Header-Kommentare.

carstenbach
quelle
Das ist ziemlich cool, danke :) Ich denke, es wäre viel praktischer, wenn es sich um ein WordPress-Plugin handeln würde und nicht um einen Webdienst, aber es ist besser als nichts.
Ian Dunn
2
Leider ist es auch 'pro Datei' - also kein Hochladen eines ganzen Plugins. Aber immer noch eine sehr nützliche Ressource - tolle Entdeckung!
Stephen Harris
2
Dieser Dienst unterstützt jetzt das Hochladen einer ZIP-Datei und scannt automatisch alle darin enthaltenen Dateien :)
Ian Dunn
Gibt es eine Möglichkeit, dies ( de.wpseek.com/pluginfilecheck ) oder eine andere Alternative in der statischen Analyse des Plugins während des Builds hinzuzufügen , so dass ich nicht zur obigen Site gehen muss, um n erneut zu überprüfen, und das Build-System wird es tun Bei jedem Commit wird automatisch ein Bericht zusammen mit anderen statischen Analysen erstellt.
learning_13
3

Update: Dies ist nicht mehr korrekt. Siehe die Antwort von carstenbach .


Die Antwort scheint zu lauten: "Nein, dafür gibt es keine Lösung."

Wenn jemand eines schreiben möchte, könnte dies hilfreich sein:

Ich denke, Marks Kommentar zum Einbau des Features in das WordPress.org-Repository ist eine wirklich gute Idee, aber es könnte etwas sein, das die Community zuerst erstellen muss, um zu beweisen, dass es nützlich ist, bevor das Kernteam darüber nachdenken würde, es hinzuzufügen.

Ian Dunn
quelle
2

Nun, dies ist eher ein Ausgangspunkt, aber es gibt diese schöne Liste von WP-Funktionen und den Versionen, die hier hinzugefügt / entfernt wurden . Leider geht es nur bis zu WP 3.0.1, aber wenn Sie für 3.0 als Basis fotografieren, hilft es zumindest - wenn es nicht in der Liste ist, wurde es später hinzugefügt. Möglicherweise möchten Sie Ozh eine E-Mail senden und ihn bitten, die Liste zu aktualisieren. Wenn einer von uns den Verdacht hat, kann jemand ein Plugin erstellen, das überprüft werden soll (wie ein Reverse- Deprecation-Checker ).

ETA: Per @mrwweb - Adam Browns Hook-Liste ! Aktuell auf 3.3 und geht waaaaay zurück auf 1.2.1, auf die niemand mehr bei Verstand laufen würde (Veröffentlichungsdatum 6. Oktober 2004).

SickHippie
quelle
2
Ich würde Adam Browns Hook-Liste nach Version (zurück zu 1.2.1!) Hinzufügen, gegen die sich auch eine Überprüfung lohnt.
Mrwweb
Vielen Dank für den Link zum Deprecation Checker-Plugin, der möglicherweise nützlichen Code enthält, auf dem ich aufbauen kann, falls ich jemals Zeit habe, diesen zu schreiben.
Ian Dunn
Das ist ein geniales Plugin von WPSE-Benutzer Brian Fegter.
SickHippie
0

Ich denke, die Antwort liegt in den veralteten Hinweisen - Sie sollten mit WP_DEBUG true entwickeln -, ob Sie sie anzeigen oder protokollieren, ist Ihr Aufruf, aber WP benachrichtigt Sie, wenn Sie eine veraltete Funktion verwenden.

Es wäre möglich, @since zu analysieren, wie Sie sagen, aber die Tools können Sie nur so weit bringen - Vertrautheit mit der Codebasis und manuelle Überprüfung könnten der richtige Weg sein.

Chris Cox
quelle
1
Ich denke, Sie haben die Umkehrung der Frage beantwortet. Die Frage möchte herausfinden, wie weit die Unterstützung für die derzeit unterstützten Funktionen zurückreicht (z. B. wurde in 3.1 eine von Ihrem Plugin verwendete Funktion eingeführt, sodass Ihr Plugin in früheren Versionen nicht funktioniert, diese Funktion jedoch keinen Fehler oder Hinweis auslöst denn es wird jetzt unterstützt).
mrwweb
Du hast recht, diene mir recht für das Posten müde. Dann würde ich vorschlagen, es manuell mit der letzten Hauptversion zu vergleichen und dies als willkürlichen Ausgangspunkt zu verwenden, da es im besten Interesse aller liegt, die Benutzer zu ermutigen, ihr WP auf dem neuesten Stand zu halten. Sobald ein Startpunkt festgelegt wurde, sind Commit-Nachrichten wahrscheinlich der beste Ort, um die Requires-Version auf dem neuesten Stand zu halten, da dort jedes Refactoring zur Vermeidung veralteter Funktionen und Methoden vermerkt werden sollte.
Chris Cox
Ein Blick auf wordpress.org/about/stats Ich würde sagen, 3.2 ist eine gute Version zum Filmen, da alle früheren Versionen statistisch unbedeutend sind.
Chris Cox
Vielen Dank für die Ideen, Chris, aber der Hauptschub bestand darin, eine automatisierte Lösung zu finden. Sie machen jedoch einen guten Eindruck davon, dass Versionen älter als 3.2 statistisch unbedeutend sind.
Ian Dunn
Ich mache dir einen Deal - lass es mich wissen, wenn du aufgibst und einen schreibst, und ich lass es dich wissen, wenn ich dazu komme, einen zu schreiben. Es ist eine gute Idee und ein nützliches Werkzeug in jedem Werkzeugkasten.
Chris Cox