Salah satu fungsi yang saya gunakan dalam plugin saya adalah mencemari lingkup global dengan nama yang dapat bertabrakan dengan fungsi lain (digunakan dalam plugin lain). Jadi, saya kira saya harus mencela itu. Tetapi bagaimana saya harus melakukannya?
function foo() {
echo 'bar';
}
Saya sadar _deprecate_function()
tetapi akan berterima kasih atas contoh yang menunjukkan semua langkah yang harus saya ambil untuk menghapus fungsi dari inti plugin saya.
Ref: https://developer.wordpress.org/reference/functions/_deprecated_function/
php
functions
deprecation
Henryrywright
sumber
sumber
Jawaban:
Selain jawaban oleh @Welcher:
Ada beberapa contoh " kuburan " yang baik di inti, di mana " fungsi mati ".
Anda dapat menggunakannya sebagai pedoman, misalnya tentang dokumentasi.
Berikut adalah salah satu contoh untuk di
permalink_link()
bawah iniwp-includes/deprecated.php
Inilah dokumentasi sebaris untuk
_deprecated_function
fungsi yang menjelaskan argumen input:sumber
_deprecated_function()
3) tambahkan panggilan ke fungsi baru saya yang menggantikan yang lamaPenghentian tidak selalu sama dengan penghapusan, biasanya berarti bahwa item ditandai untuk penghapusan EVENTUAL dari API. Apakah ini metode yang akan dipanggil secara eksternal - seperti oleh plugin atau pengembang lain? Jika metode ini hanya digunakan oleh plugin secara internal, Anda mungkin dapat menghapusnya dengan aman dengan fungsi nama yang lebih baik.
Jika tidak, saya akan membuat fungsi dengan nama yang lebih baik dan memanggil orang yang memanggilnya dengan
__doing_it_wrong
panggilan - membacanya di dalam kodeks. Ini akan memberi pengembang lain waktu untuk memperbarui referensi mereka ke metode dan Anda dapat dengan aman menghapus metode di versi selanjutnya.Semoga ini membantu!
sumber
Anda membuat plugin baru dan menyarankan pengguna Anda untuk bermigrasi karena plugin saat ini adalah EOL.
Tidak ada yang lebih menyebalkan daripada pengaya plugin dan tema mengubah API publik mereka dan mencoba memperlakukannya sebagai "sekadar peningkatan kecil" Tidak ada alasan untuk memecah situs karena masalah yang sebenarnya tidak dipengaruhi oleh pengguna Anda.
sumber
Saya akan menyarankan sesuatu seperti:
Ini memiliki efek menunjukkan peringatan penghentian dalam log bersama dengan jejak tumpukan. Biasanya ini hanya akan berfungsi jika pencatatan diaktifkan di WordPress.
Operator ternary ada di sana karena konstanta E_USER_DEPRECATED hanya diperkenalkan dalam PHP 5.3.0. Dalam versi yang lebih lama, kita bisa kembali ke peringatan pengguna sederhana.
Dari manual PHP tentang konstanta kesalahan :
Alasan saya tidak suka menggunakan _doing_it_wrong atau __deprecated_function adalah bahwa fungsi-fungsi ini hanya ditujukan untuk inti WordPress. Dari referensi kode pada fungsi-fungsi tersebut:
sumber