Plugin SVN & API cập nhật - các plugin được xác định như thế nào?


11

Một điều chưa bao giờ rõ ràng đối với tôi (đặc biệt là khi tôi chưa gửi plugin đến kho lưu trữ) là cách tạo "ID" (sên) duy nhất của plugin (ví dụ như danh sách này ).

  1. Đây có phải là sự lựa chọn của tác giả tại thời điểm đệ trình SVN, hay bởi người điều hành?
  2. Đây có phải là tên plugin vệ sinh (tiêu đề)?
  3. Có phải là nó plugin_basenamekhông?
  4. Đây có phải là tệp plugin chính (không có tên thư mục) không?
  5. Thứ gì khác?

Tôi tò mò không biết (các) thuộc tính nào của plugin liên kết nó với đối tác SVN (nếu có) cho API cập nhật plugin?

Tôi yêu cầu, một phần do bản chất của tôi muốn biết, nhưng cũng là cách đảm bảo (ở một mức độ nào đó), các plugin một lần của riêng tôi sẽ không đụng độ với một trong SVN.

Ví dụ: nếu chỉ có 3) , tôi có thể sử dụng tên thư mục rất độc đáo, nhưng giữ cho tên plugin (tiêu đề) của tôi ngắn gọn.


NB Trong khi quy ước đặt tên tệp "tiêu chuẩn" dường như [my-plugin-name]/[my-plugin-name].php, tôi đã trở nên yêu thích [my-plugin-name]/plugin.php.

Nó cung cấp cho tất cả các plugin của tôi một số tính nhất quán, rõ ràng đó là tệp "bootloader" (chính) và từ quan điểm nhỏ nhặt tôi ghét sự lặp lại của tên thư mục.

Đây là một lý do khác mà tôi đặt câu hỏi, vì 4) sẽ làm tôi khó chịu. Ngoài ra, tôi cũng muốn nghe suy nghĩ của bạn về "tiêu chuẩn" này :)


Câu trả lời:


6

Khi gửi một plugin, sên trở thành tên plugin được khử trùng, như đã gửi. "Tên" của plugin có thể thay đổi sau đó, nhưng sên vẫn giữ nguyên như vậy mãi mãi.

Khi WordPress cần kiểm tra cập nhật plugin, nó sẽ nhận được tất cả thông tin tiêu đề của plugin và tên thư mục mà plugin đang ở và gửi nó đến WordPress.org.

Ba yếu tố hiện đang được sử dụng để cố gắng tạo ra một trận đấu với các plugin trong thư mục. Lưu ý rằng tôi nói "hiện tại", bởi vì điều này thay đổi thường xuyên khi chúng tôi cố gắng cải thiện các thuật toán phù hợp.

  1. Tên thư mục plugin thường là "slug" của plugin. Ít nhất, đó là nếu bạn cài đặt nó từ thư mục để bắt đầu. Vì vậy, chúng tôi kiểm tra một con sên với tên thư mục đó. Đây không phải là một chỉ số tuyệt vời, nhưng nó giúp.

  2. "Tên" trong tiêu đề plugin cũng được tìm kiếm, vì Tên phải là duy nhất trong thư mục plugin. Nếu không có tên trùng khớp với tên chính xác đó, thì Tên đó được khử trùng để tạo ra một con sên và chúng tôi cũng tìm kiếm con sên đó, chỉ trong trường hợp. Điều này không phải lúc nào cũng hoạt động.

  3. "URI Plugin" trong tiêu đề cũng được kiểm tra cho một trận đấu. Vì chúng ta biết giá trị đó cho tất cả các plugin trong thư mục, nên điều đó có thể được coi là duy nhất hợp lý cho mỗi plugin. Do đó, các tác giả plugin nên đưa vào URI Plugin trỏ đến tên miền mà họ kiểm soát và URL duy nhất cho plugin.

Tất cả ba yếu tố này sau đó được tính trọng số và kết quả hàng đầu được trả về. Các trọng số được sử dụng cho mỗi trong số ba phản ánh mức độ tin cậy về độ chính xác của dữ liệu. Ví dụ: Tên có trọng số cao hơn so với thư mục plugin-as-slug, bởi vì hầu hết các tác giả không thay đổi Tên Plugin thường xuyên và thư mục plugin thực sự có thể là bất cứ điều gì nếu người dùng cài đặt thủ công hoặc một cái gì đó.

Trận đấu càng gần với ba mục này, càng có nhiều khả năng phù hợp với plugin. Nhưng ít nhất một trận đấu chính xác trên những điều này phải được tìm thấy cho bất kỳ kết quả nào được trả về.

Đối với các plugin một lần tùy chỉnh, tôi có xu hướng sử dụng tên trang web trong chính tên plugin. Điều này giúp tôi với tổ chức là tốt. Vì vậy, tên plugin một lần của tôi có thể là "ottopress.com - Khắc phục sự cố với bất cứ điều gì". Không thể cho bất kỳ plugin nào trong thư mục phù hợp với tên miền của bạn.


Tuyệt vời! Tôi không nghĩ rằng tôi sẽ là người duy nhất đánh giá cao câu trả lời này;)
TheDeadMedic

2

Vì mục nhập SVN rõ ràng được tạo trước khi bạn cam kết plugin lần đầu tiên - nên nó dựa trên yêu cầu ban đầu của bạn để nhập. Tôi không biết nếu quy trình là kỹ thuật hoặc thủ công, có thể là một chút của cả hai.

Đối với mục đích cập nhật, rất nhiều thông tin được gửi và kho lưu trữ cố gắng xác định sự phù hợp - dựa trên tên của plugin, tên thư mục, phiên bản hiện tại và có thể hơn thế nữa. Tôi không biết nếu thuật toán chính xác đã từng được công bố.


1
Tôi nhớ lại @ otto42 trong quá khứ chỉ ra rằng AuthorURI được sử dụng như một chút mã thông báo duy nhất trong quy trình này, vì, trong khi sên Plugin có thể xung đột, sự kết hợp giữa sên Plugin và AuthorURI gần như sẽ không bao giờ xảy ra.
Chip Bennett

Chúc mừng các bạn - vì vậy nó khá rõ ràng không chỉ là một thuộc tính cụ thể. Tuy nhiên, sẽ là một cái nhìn sâu sắc để xem các thuật toán. Bất kỳ suy nghĩ về quy ước đặt tên tập tin của tôi?
TheDeadMote

Tên tệp @TheDeadMedic nói chung không quan trọng lắm, tôi không nghĩ rằng một mình nó cũng đủ để gây nhầm lẫn logic cập nhật.
Hết
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.