Plugin SVN & perbarui API - bagaimana plugin diidentifikasi?

11

Satu hal yang tidak pernah jelas bagi saya (terutama karena saya belum mengirimkan plugin ke repositori) adalah bagaimana "ID" plugin (slug) unik dihasilkan (yaitu daftar ini ).

  1. Apakah itu pilihan oleh penulis pada saat pengajuan SVN, atau oleh moderator?
  2. Apakah itu nama plugin (judul) yang sudah disanitasi?
  3. Apakah ini plugin_basename?
  4. Apakah ini file plugin utama (tanpa nama direktori)?
  5. Sesuatu yang lain

Saya ingin tahu atribut mana dari sebuah plugin menghubungkannya dengan SVN counterpart (jika ada) untuk API pembaruan plugin?

Saya bertanya, sebagian dari sifat saya ingin tahu, tetapi juga bagaimana memastikan (sampai taraf tertentu), plugin satu kali saya sendiri tidak akan berbenturan dengan yang ada di SVN.

Sebagai contoh, jika itu hanya 3) , saya bisa menggunakan nama direktori yang sangat unik, tetapi menjaga nama plugin saya (judul) singkat dan manis.


NB Sementara konvensi penamaan file "standar" tampaknya [my-plugin-name]/[my-plugin-name].php, saya sudah menyukai [my-plugin-name]/plugin.php.

Ini memberikan semua plugin saya beberapa konsistensi, jelas bahwa itu adalah file "bootloader" (utama), dan dari sudut pandang picik saya benci pengulangan nama direktori.

Ini adalah alasan lain saya mengajukan pertanyaan, karena 4) akan mengacaukan saya. Ditambah lagi, saya juga ingin mendengar pendapat Anda tentang "standar" ini :)

TheDeadMedic
sumber
kemungkinan duplikat dari Cara membuat API untuk plugin saya?
JayDeep Nimavat

Jawaban:

6

Saat mengirimkan plugin, siput menjadi nama plugin yang disanitasi, seperti yang dikirimkan. "Nama" plugin dapat berubah setelah ini, tetapi siput tetap sama selamanya.

Ketika WordPress perlu memeriksa pembaruan plugin, WordPress mendapat semua informasi header plugin dan nama direktori tempat plugin tersebut berada, dan mengirimkannya ke WordPress.org.

Tiga faktor saat ini digunakan untuk mencoba membuat kecocokan dengan plugin di direktori. Perhatikan bahwa saya katakan "saat ini", karena ini sering berubah ketika kami mencoba meningkatkan algoritme yang cocok.

  1. Nama direktori plugin seringkali merupakan "slug" dari plugin. Setidaknya, itu adalah jika Anda menginstalnya dari direktori untuk memulai. Jadi kami memeriksa siput dengan nama direktori itu. Ini bukan indikator yang bagus, tetapi membantu.

  2. "Nama" di tajuk plugin juga dicari, karena Nama harus unik di direktori plugin. Jika tidak ada kecocokan pada nama yang tepat, maka Nama tersebut dibersihkan untuk menghasilkan siput, dan kami mencari siput itu juga, untuk berjaga-jaga. Ini tidak selalu berhasil.

  3. "Plugin URI" di header juga dicocokkan. Karena kita tahu nilai itu untuk semua plugin di direktori, maka itu dapat dianggap cukup unik untuk setiap plugin. Dengan demikian, penulis plugin disarankan untuk memasukkan URI Plugin yang menunjuk ke domain yang mereka kontrol dan URL yang unik untuk plugin tersebut.

Ketiga faktor ini kemudian ditimbang, dan hasil teratas dikembalikan. Bobot yang digunakan untuk masing-masing ketiganya mencerminkan tingkat kepercayaan dalam keakuratan data. Sebagai contoh, Name diberi bobot lebih tinggi daripada plugin-directory-as-slug, karena kebanyakan penulis tidak terlalu sering mengubah Nama Plugin, dan direktori-plugin sebenarnya bisa apa saja jika pengguna menginstalnya secara manual atau sesuatu.

Semakin dekat kecocokan dengan ketiga item ini, semakin besar kemungkinan cocok dengan plugin tersebut. Tetapi setidaknya satu kecocokan tepat pada ini harus ditemukan agar hasil apa pun dikembalikan.

Untuk plugin satu kali kustom, saya cenderung menggunakan nama situs dalam nama plugin itu sendiri. Ini membantu saya dengan organisasi juga. Jadi nama plugin satu kali saya mungkin "ottopress.com - Perbaiki masalah dengan apa pun". Tidak mungkin plugin apa pun di direktori cocok dengan domain Anda.

Otto
sumber
Luar biasa! Saya tidak berpikir saya akan menjadi satu-satunya yang menghargai jawaban ini;)
TheDeadMedic
2

Karena entri SVN jelas dibuat sebelum Anda mengkomit plugin Anda untuk pertama kalinya - itu didasarkan pada permintaan awal Anda untuk entri. Saya tidak tahu apakah prosesnya teknis atau manual, mungkin sedikit dari keduanya.

Untuk tujuan pembaruan, sekelompok informasi dikirimkan dan repositori mencoba menentukan kecocokan - berdasarkan nama plugin, nama direktori, versi saat ini dan mungkin lebih. Saya tidak tahu apakah algoritma yang tepat pernah dipublikasikan.

Jarang
sumber
1
Saya ingat @ otto42 di masa lalu yang menunjukkan bahwa AuthorURI digunakan sebagai sedikit token unik dalam proses ini, karena, sementara siput Plugin mungkin berbenturan, kombinasi siput Plugin dan AuthorURI hampir tidak akan pernah.
Chip Bennett
Cheers guys - jadi jelas bukan hanya satu atribut. Akan menjadi wawasan untuk melihat algoritme. Adakah pemikiran tentang konvensi penamaan file saya?
TheDeadMedic
Nama file @TheDeadMedic tidak terlalu penting secara umum, saya pikir itu tidak cukup untuk membingungkan logika pembaruan.
Pertama