プラグインSVNと更新API-プラグインはどのように識別されますか?


11

(特にプラグインをリポジトリに送信していないので)私には決して明らかではないことの1つは、プラグインの一意の「ID」(スラッグ)がどのように生成されるかです(つまり、このリスト)。

  1. SVN提出時点での著者による選択ですか、それともモデレーターによる選択ですか?
  2. サニタイズされたプラグイン名(タイトル)ですか?
  3. それplugin_basenameですか?
  4. メインのプラグインファイルですか(ディレクトリ名なし)?
  5. 他に何か?

プラグインのどの属性がプラグイン更新API のSVNカウンターパート(ある場合)にリンクするのか興味がありますか?

私の知りたい部分もありますが、SVNのプラグインと1回限りのプラグインが衝突しないように(ある程度)確認する方法もあります。

たとえば、3)のみの場合、非常に一意のディレクトリ名を使用できますが、プラグイン名(タイトル)は短く 'n sweetにしてください。


NB「標準」ファイル命名規則はそうであるように見えますが[my-plugin-name]/[my-plugin-name].php、私は好きになりました[my-plugin-name]/plugin.php

それはすべてのプラグインに一定の一貫性を与え、それが「ブートローダー」(メイン)ファイルであることは明らかであり、ささいな観点から私はディレクトリ名の繰り返しが嫌いです。

これは、4)が私を台無しにするからです。さらに、この「標準」に関するあなたの考えも聞きたいです:)


回答:


6

プラグインを送信すると、送信されたスラッグはサニタイズされたプラグイン名になります。この後、プラグインの「名前」は変更できますが、スラッグはずっと同じままです。

WordPressがプラグインの更新を確認する必要がある場合、プラグインのすべてのヘッダー情報とプラグインが含まれているディレクトリ名を取得し、WordPress.orgに送信します。

現在、ディレクトリ内のプラグインとの一致を試みるために3つの要素が使用されています。「現在」と言うことに注意してください。これは、マッチングアルゴリズムの改善を試みるたびに頻繁に変更されるためです。

  1. プラグインのディレクトリ名は、多くの場合プラグインの「スラッグ」です。少なくとも、最初からディレクトリからインストールした場合です。そのため、そのディレクトリ名のスラッグをチェックします。これは優れた指標ではありませんが、役立ちます。

  2. 名前はプラグインディレクトリ内で一意でなければならないため、プラグインヘッダーの「名前」も検索されます。その正確な名前に一致するものがない場合、名前は無害化されてスラッグが生成され、念のためそのスラッグも検索されます。これは常に機能するとは限りません。

  3. ヘッダーの「プラグインURI」も一致するかどうかがチェックされます。ディレクトリ内のすべてのプラグインの値がわかっているので、各プラグインに対して合理的に一意であると考えることができます。したがって、プラグイン作成者は、自分が制御するドメインとプラグインに固有のURLを指すプラグインURIを入力することをお勧めします。

これらの3つの要素すべてに重みが付けられ、上位の結果が返されます。3つのそれぞれに使用される重みは、データの精度の信頼レベルを反映しています。たとえば、ほとんどの作成者はプラグイン名を頻繁に変更しないため、Nameはplugin-directory-as-slugよりも高く重み付けされます。また、ユーザーが手動でインストールした場合、plugin-directoryは実際には何でもかまいません。

これら3つの項目に一致するほど、プラグインに一致する可能性が高くなります。ただし、結果を返すには、これらの少なくとも1つの完全一致を見つける必要があります。

カスタムの一時プラグインの場合、プラグイン名自体にサイト名を使用する傾向があります。これは組織にも役立ちます。したがって、私の1回限りのプラグイン名は「ottopress.com-何でも問題を修正する」かもしれません。ディレクトリ内のプラグインがドメインに一致する可能性は低いです。


驚くばかり!この答えに感謝するのは私だけではないと思う;)
TheDeadMedic

2

SVNエントリは、プラグインを初めてコミットする前に明らかに作成されるため、最初のエントリ要求に基づいています。プロセスが技術的であるか手動であるかはわかりませんが、おそらくその両方です。

更新のために、多くの情報が送信され、リポジトリはプラグインの名前、ディレクトリ名、現在のバージョンなどに基づいて一致を判断しようとします。正確なアルゴリズムがこれまでに公開されたかどうかは知りません。


1
過去に@ otto42を思い出します。AuthorURIはこのプロセスで少しユニークなトークンとして使用されることを示しています。なぜなら、Plugin slugは衝突するかもしれませんが、Plugin slugとAuthorURIの組み合わせはほとんど決してないからです。
チップベネット

みんな乾杯-それはそれが単に特定の属性ではないことはかなり明らかだ。それにもかかわらず、アルゴリズムを見るための洞察になります。ファイルの命名規則について何か考えはありますか?
TheDeadMedic

@TheDeadMedicファイル名は一般的には重要ではありません。更新ロジックを混乱させるのにそれだけでは不十分だと思います。
最悪の
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.