ปลั๊กอิน SVN & อัปเดต API - มีการระบุปลั๊กอินอย่างไร


11

สิ่งหนึ่งที่ไม่ชัดเจนสำหรับฉัน (โดยเฉพาะเมื่อฉันไม่ได้ส่งปลั๊กอินไปยังที่เก็บ) คือการสร้าง "ID" (กระสุน) ที่ไม่ซ้ำกันของปลั๊กอิน (เช่นรายการนี้ )

  1. มันเป็นตัวเลือกโดยผู้เขียน ณ จุดส่ง SVN หรือโดยผู้กลั่นกรอง?
  2. มันเป็นชื่อปลั๊กอินที่ถูกสุขอนามัยหรือไม่?
  3. มันคือplugin_basenameอะไร
  4. มันเป็นไฟล์ปลั๊กอินหลัก (ไม่มีชื่อไดเรกทอรี) หรือไม่?
  5. อื่น ๆ อีก?

ฉันอยากรู้ว่าคุณสมบัติของปลั๊กอินเชื่อมโยงไปเป็นของ SVN (ถ้ามี) สำหรับการอัปเดตปลั๊กอิน API?

ฉันขอให้ส่วนหนึ่งจากธรรมชาติของฉันต้องการที่จะรู้ แต่ยังวิธีการเพื่อให้มั่นใจ (ในระดับหนึ่ง) ปลั๊กอิน one-off ของฉันเองจะไม่ขัดแย้งกับหนึ่งใน SVN

ตัวอย่างเช่นหากเป็นเพียง3)ฉันสามารถใช้ชื่อไดเรกทอรีที่ไม่ซ้ำกันสูง แต่ให้ใช้ชื่อปลั๊กอิน (ชื่อ) สั้น ๆ


NBขณะที่ "มาตรฐาน" การประชุมการตั้งชื่อไฟล์น่าจะเป็นฉันได้กลายเป็นที่รัก[my-plugin-name]/[my-plugin-name].php[my-plugin-name]/plugin.php

มันให้ปลั๊กอินทั้งหมดของฉันความสอดคล้องบางอย่างชัดเจนว่าเป็นไฟล์ "bootloader" (หลัก) และจากมุมมองย่อยฉันเกลียดการซ้ำซ้อนของชื่อไดเรกทอรี

นี่เป็นอีกเหตุผลที่ฉันถามคำถามตั้งแต่4)จะทำให้ฉันเมา รวมทั้งฉันต้องการฟังความคิดเห็นของคุณเกี่ยวกับ "มาตรฐาน" ด้วย :)


มีความเป็นไปได้ที่ซ้ำกันของวิธีสร้าง API สำหรับปลั๊กอินของฉัน
JayDeep Nimavat

คำตอบ:


6

เมื่อส่งปลั๊กอินกระสุนจะกลายเป็นชื่อปลั๊กอินที่ถูกสุขลักษณะตามที่ส่ง "ชื่อ" ของปลั๊กอินสามารถเปลี่ยนได้หลังจากนี้ แต่กระสุนยังคงเหมือนเดิมตลอดไป

เมื่อ WordPress ต้องการตรวจสอบการอัปเดตปลั๊กอินมันจะได้รับข้อมูลส่วนหัวทั้งหมดของปลั๊กอินและชื่อไดเรกทอรีที่ปลั๊กอินนั้นอยู่และส่งไปยัง WordPress.org

ปัจจุบันมีปัจจัยสามประการที่ใช้ในการพยายามจับคู่กับปลั๊กอินในไดเรกทอรี โปรดทราบว่าฉันพูดว่า "ปัจจุบัน" เพราะสิ่งนี้เปลี่ยนแปลงบ่อยครั้งเมื่อเราพยายามปรับปรุงอัลกอริทึมที่ตรงกัน

  1. ชื่อไดเรกทอรีปลั๊กอินมักจะเป็น "กระสุน" ของปลั๊กอิน อย่างน้อยก็ถ้าคุณติดตั้งจากไดเรกทอรีเพื่อเริ่มต้นด้วย ดังนั้นเราจะตรวจสอบกระสุนที่มีชื่อไดเรกทอรีนั้น นี่ไม่ใช่ตัวบ่งชี้ที่ดี แต่ช่วยได้

  2. "ชื่อ" ในส่วนหัวของปลั๊กอินถูกค้นหาเช่นกันเนื่องจากชื่อต้องไม่ซ้ำกันในไดเรกทอรีปลั๊กอิน หากไม่มีชื่อที่ตรงกันนั้นชื่อนั้นจะถูกทำให้สะอาดเพื่อสร้างกระสุนและเราค้นหากระสุนดังกล่าวเช่นกันในกรณี มันไม่ได้ผลเสมอไป

  3. "ปลั๊กอิน URI" ในส่วนหัวจะถูกตรวจสอบเพื่อหาคู่เช่นกัน เนื่องจากเราทราบค่าของปลั๊กอินทั้งหมดในไดเรกทอรีดังนั้นจึงถือว่ามีความแตกต่างกันในแต่ละปลั๊กอิน ดังนั้นผู้เขียนปลั๊กอินจึงควรใส่ URI ของปลั๊กอินที่ชี้ไปยังโดเมนที่พวกเขาควบคุมและ URL ที่ไม่ซ้ำกับปลั๊กอิน

จากนั้นปัจจัยทั้งสามเหล่านี้จะถูกถ่วงน้ำหนักและผลลัพธ์สูงสุดจะถูกส่งคืน น้ำหนักที่ใช้สำหรับทั้งสามสะท้อนถึงระดับความเชื่อมั่นในความถูกต้องของข้อมูล ตัวอย่างเช่นชื่อมีน้ำหนักสูงกว่า plugin-directory-as-slug เนื่องจากผู้เขียนส่วนใหญ่ไม่เปลี่ยนชื่อปลั๊กอินบ่อยนักและปลั๊กอินไดเรกทอรีอาจเป็นอะไรก็ได้หากผู้ใช้ติดตั้งด้วยตนเองหรืออะไรบางอย่าง

ยิ่งรายการที่ตรงกันทั้งสามรายการมีแนวโน้มใกล้เคียงกับปลั๊กอินมากเท่าใด แต่จะต้องพบสิ่งที่ตรงกันอย่างน้อยหนึ่งรายการสำหรับผลลัพธ์ใด ๆ ที่จะส่งคืน

สำหรับปลั๊กอินแบบใช้ครั้งเดียวที่กำหนดเองฉันมักจะใช้ชื่อไซต์ในชื่อปลั๊กอินเอง สิ่งนี้ช่วยฉันในการจัดระเบียบเช่นกัน ดังนั้นชื่อปลั๊กอินที่ใช้ครั้งเดียวของฉันอาจเป็น "ottopress.com - แก้ไขปัญหาอะไรก็ได้" ไม่น่าสำหรับปลั๊กอินใด ๆ ในไดเรกทอรีให้ตรงกับโดเมนของคุณ


! น่ากลัว ฉันไม่คิดว่าฉันจะเป็นคนเดียวที่ชื่นชมคำตอบนี้)
TheDeadMedic

2

เนื่องจากรายการ SVN นั้นถูกสร้างขึ้นอย่างชัดเจนก่อนที่คุณจะยอมรับปลั๊กอินของคุณเป็นครั้งแรก - มันจะขึ้นอยู่กับคำขอเริ่มต้นของคุณสำหรับรายการ ฉันไม่ทราบว่ากระบวนการนั้นเป็นคู่มือทางเทคนิคหรือด้วยตนเองอาจเป็นได้ทั้งสองอย่าง

สำหรับจุดประสงค์ในการอัปเดตข้อมูลจะถูกส่งและที่เก็บพยายามตรวจสอบการจับคู่ตามชื่อของปลั๊กอินชื่อไดเรกทอรีรุ่นปัจจุบันและอื่น ๆ ฉันไม่ทราบว่าอัลกอริทึมที่แน่นอนเคยเผยแพร่


1
ฉันจำได้ว่า @ otto42 ในอดีตแสดงให้เห็นว่าAuthorURIใช้เป็นโทเค็นที่ไม่ซ้ำกันในกระบวนการนี้เนื่องจากในขณะที่ปลั๊กอินกระสุนอาจปะทะกันการรวมกันของปลั๊กอินกระสุนและ AuthorURI แทบจะไม่เคย
Chip Bennett

ไชโยพวกมันค่อนข้างชัดเจนว่ามันไม่ใช่คุณสมบัติอย่างใดอย่างหนึ่ง จะเป็นข้อมูลเชิงลึกเพื่อดูอัลกอริทึมอย่างไรก็ตาม มีความคิดเห็นเกี่ยวกับแบบแผนการตั้งชื่อไฟล์ของฉันไหม?
TheDeadMedic

@ ชื่อไฟล์ TheDeadMedic ไม่ได้มีความสำคัญอะไรโดยทั่วไปฉันไม่คิดว่ามันจะเพียงพอที่จะสร้างความสับสนในตรรกะการอัปเดต
Rarst
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.