Eklenti SVN ve güncelleme API'sı - eklentiler nasıl tanımlanır?


11

Benim için hiç net olmayan bir şey (özellikle depoya bir eklenti göndermediğimden), bir eklentinin benzersiz "ID" slug'unun nasıl üretildiği (yani bu liste ).

  1. SVN sunumu sırasında yazar tarafından mı yoksa bir moderatör tarafından mı tercih edilir?
  2. Temizlenmiş eklenti adı (başlık) mı?
  3. Öyle mi plugin_basename?
  4. Ana eklenti dosyası mı (dizin adı olmadan)?
  5. Başka bir şey?

Bir eklentinin hangi özellik (ler) i eklenti güncelleme API'sı için SVN muadiline (varsa) bağlamayı merak ediyorum ?

Kısmen doğamdan bilmek istemesini isterim, aynı zamanda (bir dereceye kadar) kendi tek seferlik eklentilerimin SVN'deki biriyle çakışmamasını da isterim.

Örneğin, yalnızca 3) olsaydı , oldukça benzersiz bir dizin adı kullanabilirdim, ancak eklenti adımı (başlık) kısa 'n tatlı tutabilirim.


Not "Standart" dosya adlandırma kuralı gibi görünse de [my-plugin-name]/[my-plugin-name].php, ben düşkün oldum [my-plugin-name]/plugin.php.

Tüm eklentilerime bir miktar tutarlılık veriyor, bu "bootloader" (ana) dosyası ve açık bir bakış açısından dizin adının tekrarından nefret ediyorum.

Bu soruyu sormamın başka bir nedeni, çünkü 4) beni mahvedecek. Artı ben de bu "standart" hakkında düşüncelerinizi duymak istiyorum :)


Yanıtlar:


6

Bir eklenti gönderirken, bilgi gönderildiği gibi sülük temizlenmiş eklenti adı haline gelir. Bundan sonra eklentinin "Adı" değişebilir, ancak bilgi sonsuza dek aynı kalır.

WordPress'in bir eklenti güncellemesini kontrol etmesi gerektiğinde, eklentinin tüm üstbilgi bilgilerini ve eklentinin bulunduğu dizin adını alır ve bunu WordPress.org'a gönderir.

Şu anda dizindeki eklentilerle eşleşme yapmak için üç faktör kullanılmaktadır. "Şu anda" diyorum, çünkü eşleşen algoritmaları geliştirmeye çalıştığımız kadar sık ​​değişiyor.

  1. Eklenti dizin adı genellikle eklentinin "slug" adıdır. En azından, başlamak için dizinden yüklediyseniz. Bu nedenle bu dizin adına sahip bir bilgi kontrol ediyoruz. Bu harika bir gösterge değil, ama yardımcı oluyor.

  2. Eklenti başlığındaki "Ad" da aranır, çünkü Ad'ın eklenti dizininde benzersiz olması gerekir. Eğer tam olarak bu isimde bir eşleşme yoksa, Ad bir sümüklü böcek üretmek için dezenfekte edilir ve biz de bu sümüklü böcek için arama yaparız, her ihtimale karşı. Bu her zaman işe yaramaz.

  3. Başlıktaki "Eklenti URI'si" de eşleşme için kontrol edilir. Dizindeki tüm eklentiler için bu değeri bildiğimizden, bu her eklenti için makul olarak kabul edilebilir. Bu nedenle, eklenti yazarlarının kontrol ettikleri bir etki alanına ve eklentiye özgü bir URL'ye işaret eden bir Eklenti URI'sini koymaları önerilir.

Bu faktörlerin üçü daha sonra tartılır ve en yüksek sonuç döndürülür. Üçünün her biri için kullanılan ağırlıklar, verilerin doğruluğuna olan güven düzeyini yansıtır. Örneğin, çoğu yazar Eklenti Adlarını çok sık değiştirmediğinden ve kullanıcı el ile veya başka bir şey yüklerse plugin-directory aslında herhangi bir şey olabilir.

Bu üç öğeyle eşleşme ne kadar yakın olursa, eklentiyle eşleşmesi daha olasıdır. Ancak herhangi bir sonucun döndürülmesi için bunlarla ilgili en az bir kesin eşleşme bulunmalıdır.

Özel bir kerelik eklentiler için, eklenti adının kendisinde site adını kullanma eğilimindeyim. Bu da organizasyonda bana yardımcı oluyor. Yani benim bir kerelik eklenti adı "ottopress.com - ne olursa olsun sorunu düzelt" olabilir. Dizindeki herhangi bir eklentinin alan adınızla eşleşmesi olası değildir.


Müthiş! Bu cevabı takdir eden tek kişi olacağımı sanmıyorum;)
TheDeadMedic

2

Eklentinizi ilk kez çalıştırmadan önce SVN girişi açıkça oluşturulduğundan, ilk giriş isteğinize dayanır. Sürecin teknik mi manuel mi olduğunu bilmiyorum, muhtemelen ikisinden de biraz.

Güncelleme amacıyla, bir grup bilgi gönderilir ve depo, eklentinin adı, dizin adı, mevcut sürüm ve muhtemelen daha fazlasına dayalı olarak eşleşmeyi belirlemeye çalışır. Tam algoritmanın yayınlanıp yayınlanmadığının farkında değilim.


1
Ben belirten geçmişte @ otto42 hatırlama AuthorURI Eklenti sümüklüböcek çatışma olabilir iken, çünkü bu süreçte eşsiz bir belirteci biraz olarak kullanılır Eklenti sümüklü böcek ve AuthorURI kombinasyonu neredeyse asla.
Chip Bennett

Şerefe çocuklar - bu sadece belirli bir özellik değil. Yine de algoritmayı görmek için bir fikir olacaktır. Dosya adlandırma kuralım hakkında herhangi bir düşünceniz var mı?
TheDeadMedic

@TheDeadMedic dosya adı genel olarak çok önemli değil, tek başına güncelleme mantığını da karıştırmanın yeterli olacağını düşünmüyorum.
Rarst
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.