Wtyczka SVN i aktualizacja API - jak identyfikowane są wtyczki?

11

Jedną z rzeczy, które nigdy nie były dla mnie jasne (zwłaszcza, że ​​nie przesłałem wtyczki do repozytorium), jest sposób generowania unikalnego „identyfikatora” (ślimaka) wtyczki (tj. Tej listy ).

  1. Czy jest to wybór dokonany przez autora w momencie składania SVN, czy przez moderatora?
  2. Czy to nazwa odkażonej wtyczki (tytuł)?
  3. Czy to plugin_basenamejest
  4. Czy jest to główny plik wtyczki (bez nazwy katalogu)?
  5. Coś innego?

Jestem ciekawy, które atrybuty wtyczki łączą go z odpowiednikiem SVN (jeśli taki posiada) dla interfejsu API aktualizacji wtyczek?

Proszę, częściowo z mojej natury, aby chcieć wiedzieć, ale także jak zapewnić (do pewnego stopnia), że moje własne jednorazowe wtyczki nie będą kolidować z jedną w SVN.

Na przykład, jeśli byłaby to tylko 3) , mogłabym użyć bardzo unikalnej nazwy katalogu, ale nazwa wtyczki (tytuł) powinna być krótka i słodka.


NB Chociaż wydaje się [my-plugin-name]/[my-plugin-name].php, że jest to „standardowa” konwencja nazewnictwa plików , lubię [my-plugin-name]/plugin.php.

Daje to spójność wszystkim moim wtyczkom, jasne jest, że jest to plik „bootloader” (główny), az drobnego punktu widzenia nienawidzę powtarzania nazwy katalogu.

To kolejny powód, dla którego zadaję to pytanie, ponieważ 4) mnie zawalił. Dodatkowo chciałbym usłyszeć twoje przemyślenia na temat tego „standardu” :)

TheDeadMedic
źródło
możliwy duplikat Jak utworzyć API dla mojej wtyczki?
JayDeep Nimavat

Odpowiedzi:

6

Podczas przesyłania wtyczki ślimak staje się nazwą oczyszczonej wtyczki, zgodnie z przesłaniem. „Nazwa” wtyczki może się później zmienić, ale ślimak pozostanie taki sam na zawsze.

Kiedy WordPress musi sprawdzić dostępność wtyczki, pobiera wszystkie informacje nagłówka wtyczki i nazwę katalogu, w którym jest wtyczka, i wysyła ją do WordPress.org.

Obecnie stosuje się trzy czynniki, aby dopasować wtyczki do katalogu. Zauważ, że mówię „obecnie”, ponieważ zmienia się to tak często, jak próbujemy poprawić algorytmy dopasowywania.

  1. Nazwa katalogu wtyczki jest często „ślimakiem” wtyczki. Przynajmniej tak jest, jeśli najpierw zainstalowałeś go z katalogu. Sprawdzamy więc ślimaka o tej nazwie katalogu. To nie jest świetny wskaźnik, ale pomaga.

  2. Szukana jest również „Nazwa” w nagłówku wtyczki, ponieważ Nazwa musi być unikalna w katalogu wtyczek. Jeśli nie ma dopasowania do tej dokładnej nazwy, Nazwa jest dezynfekowana w celu wyprodukowania ślimaka, a my również szukamy tego ślimaka, na wszelki wypadek. To nie zawsze działa.

  3. „Identyfikator URI wtyczki” w nagłówku jest również sprawdzany pod kątem zgodności. Ponieważ znamy tę wartość dla wszystkich wtyczek w katalogu, można to uznać za rozsądnie unikalne dla każdej wtyczki. W związku z tym zaleca się autorom wtyczek umieszczenie identyfikatora URI wtyczki, który wskazuje domenę, którą kontrolują, oraz adres URL unikalny dla wtyczki.

Wszystkie trzy z tych czynników są następnie ważone i zwracany jest najwyższy wynik. Wagi zastosowane dla każdej z trzech odzwierciedlają poziom ufności w zakresie dokładności danych. Na przykład, nazwa jest ważona wyżej niż katalog plugin-plug-as-slug, ponieważ większość autorów nie zmienia często nazw pluginów, a katalog pluginów może być dowolny, jeśli użytkownik zainstaluje go ręcznie, czy coś.

Im bliższe dopasowanie do tych trzech elementów, tym większe prawdopodobieństwo, że pasuje do wtyczki. Aby jednak wynik został zwrócony, należy znaleźć co najmniej jedno dokładne dopasowanie.

W przypadku niestandardowych jednorazowych wtyczek zwykle używam nazwy witryny w samej nazwie wtyczki. Pomaga mi to również w organizacji. Więc moją jednorazową nazwą wtyczki może być „ottopress.com - Napraw problem z czymkolwiek”. Jest mało prawdopodobne, aby jakakolwiek wtyczka w katalogu pasowała do Twojej domeny.

Otto
źródło
Niesamowite! Nie sądzę, że będę jedyną, która doceni tę odpowiedź;)
TheDeadMedic
2

Ponieważ wpis SVN jest oczywiście tworzony przed pierwszym zatwierdzeniem wtyczki - jest on oparty na początkowym żądaniu wpisu. Nie wiem, czy proces jest techniczny czy ręczny, prawdopodobnie trochę z obu.

Do celów aktualizacji przesyłanych jest kilka informacji, a repozytorium próbuje ustalić dopasowanie - na podstawie nazwy wtyczki, nazwy katalogu, bieżącej wersji i prawdopodobnie innych. Nie wiem, czy kiedykolwiek opublikowano dokładny algorytm.

Rarst
źródło
1
Pamiętam @ otto42 w przeszłości, wskazując, że AuthorURI jest używany jako trochę unikalnego tokena w tym procesie, ponieważ podczas gdy ślimak wtyczki może się kolidować, połączenie ślimaka wtyczki i AutorURI prawie nigdy nie będzie.
Chip Bennett,
Na zdrowie chłopaki - więc jest całkiem jasne, że nie jest to tylko jeden szczególny atrybut. Byłoby to wgląd, aby zobaczyć algorytm mimo to. Jakieś przemyślenia na temat mojej konwencji nazewnictwa plików?
TheDeadMedic
@ Nazwa pliku TheDeadMedic nie ma większego znaczenia w ogóle, nie sądzę, że sam byłby wystarczający do pomylenia logiki aktualizacji.
Rarst