Câu trả lời:
Nếu bạn muốn hỗ trợ Trình soạn thảo, thêm một phần composer.json
tốt hơn thì hãy để WPackagist tạo một gói cho bạn.
Có một số lý do, không ai thực sự quan trọng, nhưng xem xét rằng để tạo ra một composer.json
không đòi hỏi nhiều nỗ lực, nó có thể xứng đáng.
composer.json
Những lợi íchDưới đây là một danh sách không đầy đủ các lợi ích của việc sử dụng composer.json
.
Khi bạn yêu cầu một gói, Trình soạn thảo xem xét các kho lưu trữ để tìm gói cụ thể đó. Packagist và WPackagist là 2 kho lưu trữ.
Sự khác biệt là Packagist luôn được Composer phân tích cú pháp, trong khi WPackagist phải được thêm thủ công vào dự án composer.json
.
Để yêu cầu một plugin trên Packagist, bạn cần một dòng duy nhất trong composer.json
:
"require": {
"your-name/your-plugin-name":"1.*",
}
Để yêu cầu plugin trên WPackagist, bạn cũng cần định cấu hình kho lưu trữ:
"repositories":[
{
"type":"composer",
"url":"http://wpackagist.org"
}
],
"require": {
"your-name/your-plugin-name":"1.*",
}
Điều này cũng có liên quan khi sử dụng dòng lệnh, xem
composer create-project your-name/your-plugin-name
VS
composer create-project wpackagist-plugin/your-plugin-name --repository-url=http://wpackagist.org
Khi một dự án chứa nhiều kho lưu trữ hơn, Composer sẽ ping tất cả chúng để tìm thông tin về các gói.
Vì vậy, thêm kho lưu trữ WPackagist, làm chậm cài đặt. Cũng xem xét rằng tất cả các máy chủ có thể ngừng hoạt động, cho bất kỳ cộng hưởng. Nó xảy ra với các công ty lớn hơn nhiều so với công ty đứng sau WPackagist, vì vậy mỗi kho lưu trữ bạn thêm vào, đó là một điểm có thể thất bại bổ sung.
Một trong những lợi thế của việc có một composer.json
là bạn có thể định cấu hình cách Trình soạn thảo sẽ tìm nạp plugin của bạn.
Ví dụ: bạn có thể sử dụng cấu hình tên gói trong thuộc name
tính, thay vì để WPackagist tạo tên gói cho bạn.
Ngoài ra, có rất nhiều cấu hình có thể được thực hiện composer.json
, chỉ một vài ví dụ:
branch-alias
cài đặt để cải thiện khả năng tương thích của phiên bản phát triển của pluginrequire
cài đặt để đặt phiên bản PHP tối thiểu,conflict
thiết lập cho phép bạn rõ ràng thông báo về mâu thuẫn gói ...và như thế.
Khi bạn yêu cầu một plugin từ WPackagist, phần "nhà cung cấp" của tên gói luôn luôn wpackagist-plugin
.
Vì vậy, mọi người sẽ yêu cầu bạn plugin như:
"require": {
"wpackagist-plugin/your-plugin-name":"1.*",
}
Nếu bạn đặt plugin trên packagist, bạn có thể sử dụng tiền tố của nhà cung cấp của riêng bạn và tôi nghĩ là tốt hơn cho tiếp thị:
"require": {
"your-name/your-plugin-name":"1.*",
}
Trình soạn thảo cung cấp tự động tải cho các gói. Nếu bạn quyết định sử dụng Trình soạn thảo, bạn có thể hưởng lợi từ nó. Tuy nhiên, xem xét rằng bạn đang chuyển plugin của mình sang repo chính thức, bạn cần tính đến việc phần lớn người dùng của bạn có thể sẽ cài đặt plugin của bạn không sử dụng Trình soạn thảo. Nó có nghĩa là bạn phải có khả năng:
Khả năng thứ hai chỉ được đề cập vì plugin của bạn không có phần phụ thuộc được xử lý bởi Trình soạn thảo, nếu không, thư mục nhà cung cấp tàu là khả năng duy nhất để plugin của bạn hoạt động mà không có Trình soạn thảo, nhưng không có vấn đề: khi các plugin khác nhau được cài đặt với thư mục nhà cung cấp nhúng khả năng xảy ra xung đột phiên bản nếu các plugin khác nhau vận chuyển phiên bản khác nhau của cùng một gói.
Bằng cách thêm composer.json
bạn làm cho mọi người biết rằng bạn hỗ trợ rõ ràng cho Nhà soạn nhạc. Ví dụ: khi tôi tìm kiếm một plugin, để tìm một composer.json
thư mục plugin là một điểm cộng lớn đối với tôi, vì tôi có xu hướng không sử dụng các plugin không làm điều đó.
Hơn nữa, có những công cụ nhắm mục tiêu plugin hỗ trợ Composer.
Ví dụ: tôi có một tập lệnh ngăn cập nhật tự động cho plugin / chủ đề có composer.json
.
Các composer.json
tập tin thường chứa các thông tin bổ sung mà không có sẵn trong các readme.txt
tập tin. Vì vậy, nó chỉ đơn giản có thể phục vụ như một tệp readme cho các phụ thuộc của plugin của bạn.
Vì Trình soạn thảo nằm trong hộp công cụ của nhiều nhà phát triển, nên nó có thể giúp họ hiểu rõ hơn về cách plugin của bạn được liên kết với nhau.
Ví dụ, các plugin .org được gọi là abondenced, sẽ rất hữu ích khi có sẵn tệp đó cho ai đó muốn chia rẽ nó, cập nhật và mở rộng nó.
Nếu chúng tôi muốn đăng ký plugin của chúng tôi trên packagist.org , thì tất nhiên chúng tôi sẽ cần nó.
composer.json site:plugins.svn.wordpress.org
nhưng không được. @henrywright
psr-4
khóa trong composer.json
, Trình soạn thảo sẽ tạo tệp nhà cung cấp / autoload.php, mà tôi cho rằng tôi có thể cam kết với repo wp.org. spl_autoload_register()
được sử dụng thay vì __autoload()
vậy nếu bất kỳ ai khác tạo ra một plugin làm điều tương tự thì không nên có xung đột.
composer.json
tệp dưới dạng "readme" cho nhà phát triển. Tôi đã suy nghĩ nhiều hơn trong quá trình sử dụngcomposer.json
hoàn toàn cho các khả năng tự động tải. Đây có phải là một điều phổ biến để làm? Tôi đang tự hỏi nếu bạn có bất kỳ suy nghĩ về điều đó? Cảm ơn một lần nữa.