Secara otomatis menentukan versi minimum WordPress yang diperlukan untuk sebuah plugin?

22

Ketika mengembangkan sebuah plugin, apakah ada cara untuk secara otomatis menentukan versi minimum WordPress yang diperlukan untuk menjalankannya? Saya ingin memastikan bahwa Requirestajuknya akurat, tetapi memeriksa secara manual setiap kali saya memanggil fungsi inti baru membosankan dan rentan kesalahan.

Saya pikir skrip bisa mengetahuinya dengan cukup mudah:

  1. Pindai semua file dalam sebuah plugin.
  2. Mengurai keluar semua instantiations kelas dan fungsi panggilan berdasarkan new foo( [...] ), foo::bar( [...] ), bar( [...] ), call_user_func( [...] ), dll sintaks.
  3. Parsing sumber WP untuk menentukan kapan masing-masing kelas / fungsi tersebut ditambahkan ke WordPress, menggunakan @sincetag phpDoc.
  4. Buat laporan yang mencantumkan setiap kelas / fungsi dan versi yang ditambahkan, bersama dengan versi WordPress paling awal yang mencakup semua kelas / fungsi.

Saya telah melihat sekeliling tetapi tidak dapat menemukan yang seperti itu, dan tidak punya waktu untuk menulisnya sendiri. Adakah yang tahu solusi yang ada?

Ian Dunn
sumber
Pernahkah Anda melihat ini, wordpress.org/extend/plugins/log-deprecated-notices
Wyck
Itu akan menjadi awal yang baik, terima kasih telah menunjukkannya :)
Ian Dunn
@IanDunn Jika Anda dapat menemukan solusi untuk ini, silakan bagikan. :)
its_me
Saya belum menemukan solusi.
Ian Dunn
2
Semakin saya memikirkan hal ini, semakin tampaknya WordPress seharusnya membangun ini dan menjalankannya terhadap semua plugin di repositori sehingga nomor versi akurat untuk semua plugin selamanya.
mrwweb

Jawaban:

14

Saya menemukan solusi sebagai layanan otomatis di http://wpseek.com/pluginfilecheck/

Itu tidak persis, apa yang diminta termasuk pembuatan daftar fungsi yang digunakan dan memberikan saran untuk komentar Plugin-Header.

carstenbach
sumber
Itu cukup keren, terima kasih :) Saya pikir akan jauh lebih nyaman jika itu adalah plugin WordPress itu sendiri, daripada layanan web, tetapi lebih baik daripada tidak sama sekali.
Ian Dunn
2
Sayangnya ini juga 'per file' - jadi tidak ada pengunggahan seluruh plug-in. Tapi masih sumber daya yang sangat berguna - temukan!
Stephen Harris
2
Layanan itu sekarang mendukung mengunggah file zip, dan itu akan secara otomatis memindai semua file di dalamnya :)
Ian Dunn
Apakah ada cara untuk menambahkan ini ( de.wpseek.com/pluginfilecheck ) atau alternatif lain dalam analisis statis plugin selama pembuatan sehingga saya tidak perlu pergi ke situs di atas untuk memeriksa lagi n lagi dan sistem build akan secara otomatis menghasilkan laporan bersama dengan analisis statis lainnya pada setiap komit.
learning_13
3

Pembaruan: Ini tidak lagi akurat. Lihat jawaban carstenbach .


Yah, sepertinya jawabannya adalah "Tidak, tidak ada solusi yang ada untuk ini."

Jika ada yang ingin menulis, ini mungkin membantu:

Saya pikir komentar Mark tentang membangun fitur ke dalam repositori WordPress.org adalah ide yang sangat bagus, tetapi itu mungkin sesuatu yang harus dibuat komunitas terlebih dahulu untuk membuktikan bahwa itu berguna, sebelum tim inti mempertimbangkan untuk menambahkannya.

Ian Dunn
sumber
2

Nah, ini lebih merupakan titik awal, tetapi ada daftar fungsi WP yang bagus dan versi yang ditambahkan / dihapus di sini . Sayangnya, itu hanya naik ke WP 3.0.1, tetapi jika Anda memotret untuk 3.0 sebagai garis dasar setidaknya akan membantu - jika tidak ada dalam daftar, itu akan ditambahkan nanti. Anda mungkin ingin mengirim email ke Ozh dan memintanya untuk memperbarui daftar, dan jika salah satu dari kami mendapatkan keberanian seseorang dapat membuat plugin untuk memeriksa (seperti pemeriksa depresiasi terbalik ).

ETA: Per @mrwweb - Daftar Hook Adam Brown ! Saat ini ke 3.3 dan kembali ke 1.2.1, yang tidak ada yang waras akan berjalan lagi (tanggal rilis 6 Oktober 2004).

SickHippie
sumber
2
Saya akan menambahkan daftar kait menurut versi Brown Brown (kembali ke 1.2.1!) Yang juga baik untuk diperiksa.
mrwweb
Terima kasih atas tautannya ke plugin Deprecation Checker, yang mungkin menyediakan beberapa kode bermanfaat untuk dibangun jika saya pernah punya waktu untuk menulis ini.
Ian Dunn
Itu plugin yang brilian, oleh pengguna WPSE Brian Fegter.
SickHippie
0

Saya pikir jawabannya terletak pada pemberitahuan yang sudah usang - Anda harus mengembangkan dengan WP_DEBUG benar - apakah Anda menampilkan atau mencatatnya adalah panggilan Anda, tetapi WP akan memberi tahu Anda jika Anda menggunakan fungsi yang sudah tidak digunakan lagi.

Mungkin saja untuk menguraikan @since seperti yang Anda katakan, tetapi alat hanya dapat membawa Anda sejauh ini - keakraban dengan basis kode dan pemeriksaan manual mungkin merupakan cara yang harus dilakukan.

Chris Cox
sumber
1
Saya pikir Anda menjawab kebalikan dari pertanyaan. Pertanyaannya ingin menentukan seberapa jauh dukungan ke belakang untuk fungsi-fungsi yang saat ini didukung (misalnya fungsi yang digunakan plugin Anda diperkenalkan pada 3.1 sehingga plugin Anda tidak berfungsi di versi sebelumnya, tetapi fungsi itu tidak menimbulkan kesalahan atau pemberitahuan karena ini didukung sekarang).
mrwweb
Anda benar, layani saya tepat untuk memposting lelah. Lalu apa yang saya sarankan adalah memeriksa secara manual terhadap versi utama terakhir dan menggunakannya sebagai titik awal yang sewenang-wenang, karena itu adalah kepentingan terbaik semua orang untuk mendorong pengguna agar memperbarui WP mereka. Setelah titik awal telah ditetapkan, pesan komit mungkin adalah tempat terbaik untuk mencari agar versi Memerlukan diperbarui, karena setiap refactoring untuk menghindari fungsi dan metode yang usang harus dicatat di sana.
Chris Cox
Melihat di wordpress.org/about/stats saya katakan 3.2 adalah versi yang bagus untuk digunakan, karena setiap versi sebelumnya secara statistik tidak signifikan.
Chris Cox
Terima kasih atas ide-ide Chris, tetapi dorongan utama di sini adalah untuk mendapatkan solusi otomatis. Anda membuat poin yang baik tentang versi yang lebih tua dari 3,2 secara statistik tidak signifikan.
Ian Dunn
Saya akan membuat kesepakatan untuk Anda - beri tahu saya jika Anda menyerah dan menulis satu, dan saya akan memberi tahu Anda jika saya ingin menulis satu. Ini adalah ide yang bagus dan akan menjadi alat yang berguna di kotak alat siapa pun.
Chris Cox