Автоматично визначити мінімальну версію WordPress, необхідну для плагіна?


22

Розробляючи плагін, чи існує спосіб автоматичного визначення мінімальної версії WordPress, необхідної для його запуску? Я хочу переконатися, що Requiresзаголовок точний, але перевірка вручну кожного разу, коли я викликаю нову основну функцію, є стомлюючою та схильною до помилок.

Я думаю, що сценарій міг би зрозуміти його досить легко:

  1. Скануйте всі файли в плагіні.
  2. Розбираємо з усіх інстанціацій класу і виклики функцій , засновані на new foo( [...] ), foo::bar( [...] ), bar( [...] ), call_user_func( [...] )і т.д. синтаксис.
  3. Проаналізуйте джерело WP, щоб визначити, коли кожен із цих класів / функцій було додано до WordPress, використовуючи @sinceтег phpDoc.
  4. Створіть звіт із переліком кожного класу / функції та версії, яку він додав, разом із найдавнішою версією WordPress, що включає всі класи / функції.

Я озирнувся, але не зміг знайти нічого подібного, і не маю часу, щоб сам це написати. Хтось знає про існуюче рішення?



Це було б гарним початком, дякую, що вказав на це :)
Ian Dunn

@IanDunn Якщо вам вдалося знайти рішення для цього, будь ласка, поділіться ним. :)
its_me

Я ще не знайшов рішення.
Іван Данн

2
Чим більше я думаю про це, тим більше здається, що WordPress повинен просто створити це і запустити його проти всіх плагінів у сховищі, щоб номер версії був точним для всіх плагінів назавжди.
mrwweb

Відповіді:


14

Я знайшов рішення як автоматизований сервіс на веб- сайті http://wpseek.com/pluginfilecheck/

Це саме те, що було запропоновано, включаючи створення списку використаних функцій та надання пропозицій для коментарів Plugin-Header.


Це дуже круто, дякую :) Я думаю, що було б набагато зручніше, якби це сам плагін WordPress, а не веб-сервіс, але це краще, ніж нічого.
Ян Данн

2
На жаль, це також "на файл" - тому не завантажуйте весь плагін. Але все-таки дуже корисний ресурс - чудова знахідка!
Стівен Харріс

2
Ця служба тепер підтримує завантаження zip-файлу, і він автоматично сканує всі файли всередині нього :)
Ian Dunn

Чи є можливість додати це ( de.wpseek.com/pluginfilecheck ) або інший альтернативу в статичному аналізі плагіна під час збирання, щоб мені не потрібно заходити на вищезазначений сайт, щоб ще раз перевірити n, і система збірки буде автоматично генерувати звіт разом з іншим статичним аналізом щодо кожного комітету.
навчання_13

3

Оновлення: це більше не є точним. Дивіться відповідь Карстенбаха .


Що ж, здається, що відповідь "Ні, для цього не існує рішення".

Якщо хтось хотів написати таке, це може бути корисним:

Я вважаю, що коментар Марка щодо вбудови функції у сховище WordPress.org - це дійсно гарна ідея, але це може бути щось, що громада повинна створити спочатку, щоб довести, що вона корисна, перш ніж основна команда розгляне можливість її додати.


2

Ну, це скоріше відправною точкою, але це хороший список функцій WP і версій вони були додані / видалені тут . На жаль, він підходить лише до WP 3.0.1, але якщо ви знімаєте для 3.0 як базову лінію, це, принаймні, допоможе - якщо його немає в списку, це було додано пізніше. Ви можете надіслати електронною поштою Ожу та попросити його оновити список, і якщо хтось із нас отримає змогу, хтось може зробити плагін для перевірки (наприклад, зворотній перевірок анулювання ).

ETA: Per @mrwweb - Список гаків Адама Брауна ! Поточне до 3,3 і переходить до 1,2,1, який ніхто з розуму більше не працює (дата виходу 6 жовтня 2004 р.).


2
Я додам список гачків Адама Брауна за версією (назад до 1.2.1!), Що також було б добре перевірити.
mrwweb

Дякуємо за посилання на плагін Deprecation Checker, який може стати корисним кодом для надбудови, якщо я коли-небудь отримаю час, щоб написати це.
Ян Данн

Це блискучий плагін, користувач WPSE Брайан Фегтер.
SickHippie

0

Я думаю, що відповідь лежить у застарілих повідомленнях - вам слід розробляти WP_DEBUG true - чи ви їх відображаєте чи реєструєте, але ваш WP повідомить вас про використання застарілої функції.

Можна було б розібрати @since, як ви кажете, але інструменти можуть зайняти вас лише поки що - ознайомлення з базою даних коду та ручна перевірка може бути дорогою.


1
Я думаю, ти відповів на зворотне запитання. Питання хоче визначити, наскільки віддаленою є підтримка функцій, які зараз підтримуються (наприклад, функція, яку ваш плагін використовує в 3.1, тому ваш плагін не працює в попередніх версіях, але ця функція не видає помилку чи повідомлення тому що це підтримується зараз.)
mrwweb

Ви маєте рацію, слугуйте мені правильно для публікації втомився. Тоді, що я б запропонував, це вручну перевірити його проти останньої основної версії та використовувати це як довільну вихідну точку, оскільки це в інтересах кожного, щоб заохочувати користувачів постійно оновлювати свої WP. Після встановлення вихідної точки повідомлення для фіксування, мабуть, найкраще шукати, щоб оновити версію Requires оновленою, оскільки там слід зазначити будь-який рефакторинг, щоб уникнути застарілих функцій та методів.
Кріс Кокс

Дивлячись на wordpress.org/about/stats, я б сказав, що 3.2 - це приємна версія для зйомки, оскільки будь-які попередні версії статистично незначні.
Кріс Кокс

Дякую за ідеї Кріс, але головним поштовхом тут було отримати автоматизоване рішення. Ви хочете сказати, що версії, старші за 3.2, є статистично незначними.
Ян Данн

Я укладу з вами угоду - дайте мені знати, якщо ви відмовитесь і напишіть її, і я повідомлю вам, якщо я обійдуся, щоб написати її. Це гарна ідея і стане корисним інструментом у будь-якій панелі інструментів.
Кріс Кокс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.