it-swarm-vi.tech

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

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ụ 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à plugin_basename khô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ỉ 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.


N.B. Trong khi quy ước đặt tên tệp "tiêu chuẩn" dường như là [my-plugin-name]/[my-plugin-name].php, tôi đã trở nên 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 :)

12
TheDeadMedic

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 thực hiện 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 chỉ đến một miền mà họ kiểm soát và một 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 một trong ba trọng số 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, 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.

7
Otto

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ố.

2
Rarst