Trình soạn thảo là trình quản lý gói thường được sử dụng để quản lý thư viện và các phụ thuộc khác cho các dự án PHP
Phát hànhĐã phát hànhHỗ trợ bảo mậtLatest2. 53 tuần trướcYes2. 5. 12. 44 tháng và 3 tuần trướcĐã kết thúc 3 tuần trước2. 4. 42. 39 tháng trướcĐã kết thúc 4 tháng và 3 tuần trước2. 3. 102. 2 [LTS]1 năm trước Kết thúc sau 11 tháng2. 2. 1816 năm và 9 tháng trướcĐã kết thúc 2 năm trước1. 10. 26
Mặc dù thỉnh thoảng nó vẫn nhận được các bản sửa lỗi quan trọng, Composer 1. x chủ yếu là EOL và các nhà phát triển kêu gọi mọi người chuyển sang Composer 2. x
Packagist [kho lưu trữ chính của Composer] vẫn hỗ trợ Composer 1. x ngay bây giờ nhưng với một vài lưu ý
Phiên bản nhà soạn nhạc Phiên bản PHP2. 3+
composer require foo/bar --no-audit
composer update --no-audit
02. 2 [LTS]____71Bạn nên chạy một trong những số phát hành được hỗ trợ được liệt kê ở trên trong cột ngoài cùng bên phải
Bạn có thể kiểm tra phiên bản mà bạn hiện đang sử dụng bằng cách chạy.
composer --version
Bạn có thể gửi một cải tiến cho trang này trên GitHub. Trang này có một Trang thảo luận tương ứng
Phiên bản JSON của trang này có tại /api/composer. json. Xem Tài liệu API để biết thêm thông tin. Bạn có thể đăng ký nguồn cấp dữ liệu iCalendar tại /calendar/composer. ics
Nếu môi trường phát triển và sản xuất của bạn không phù hợp, bạn có thể dễ dàng gặp khó khăn khi đến lúc triển khai máy chủ trực tiếp. Không có gì lạ khi các nhà phát triển thấy mình làm việc với một phiên bản PHP và sử dụng một phiên bản khác trong đích đến cuối cùng của ứng dụng hoặc trang web. Nếu bạn sử dụng Trình soạn thảo để quản lý các gói PHP, sẽ rất tốt nếu bạn có thể tính đến điều này để tránh mọi bất ngờ khó chịu sau khi triển khai. Rất may Nhà soạn nhạc đã bảo hiểm này
Chúng tôi có thể cho Composer biết phiên bản PHP nào chúng tôi đang hỗ trợ với ứng dụng/trang web của mình bằng cách sử dụng cấu hình
composer require foo/bar --no-audit
composer update --no-audit
2 trong trình soạn thảo của chúng tôi. tập tin json{
"name": ".../...",
"config": {
"platform": {
"php": "5.6.1"
}
},
"require": {
...
}
}
Trong ví dụ này, chúng tôi đang giả mạo phiên bản PHP thành 5. 6. 1. Điều này có nghĩa là bất cứ khi nào chúng tôi thử và cài đặt hoặc cập nhật một gói với Trình soạn thảo, phiên bản nền tảng giả mạo của PHP sẽ được tính đến thay vì phiên bản PHP đang được sử dụng trên dòng lệnh mà chúng tôi đang chạy Trình soạn thảo từ. Điều này thực sự hữu ích nếu môi trường sản xuất của chúng tôi sử dụng một thiết lập khác với môi trường chúng tôi đang phát triển. Ví dụ: bạn có thể đang sử dụng phiên bản cập nhật của PHP 7 cục bộ, nhưng triển khai tới máy chủ vẫn sử dụng phiên bản 5. 6
Một cách khác để thiết lập điều này là từ dòng lệnh
composer config platform.php 5.6.1
Điều này sẽ đặt tùy chọn
composer require foo/bar --no-audit
composer update --no-audit
2 trong trình soạn nhạc. json cho chúng tôi. Trong ví dụ này, nó sẽ thêm PHP 5. 6. 1 vào tệp JSON giống như trong ví dụ trước. Bạn cũng có thể sử dụng cờ composer require foo/bar --no-audit
composer update --no-audit
4 để đặt cờ này trên toàn cầuTrên nền tảng gói Trình soạn thảo, các yêu cầu được thêm vào giống như các phụ thuộc gói. Vì vậy, ví dụ: nếu chúng tôi có một gói yêu cầu tối thiểu PHP 7. 1. 0 nhà soạn nhạc. tệp json sẽ trông như thế nào. -
{
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
Đây là những gì Trình soạn thảo sẽ sử dụng khi cài đặt và cập nhật các gói khi dự án của chúng tôi có cấu hình nền tảng
Lưu ý rằng khi thêm yêu cầu PHP tối thiểu, chúng tôi thêm yêu cầu này dưới dạng phụ thuộc bằng cách sử dụng khóa
5, trong khi cài đặt thiết lập nền tảng sử dụngcomposer require foo/bar --no-audit composer update --no-audit
2 trong tùy chọncomposer require foo/bar --no-audit composer update --no-audit
7composer require foo/bar --no-audit composer update --no-audit
Khi nói đến việc cài đặt và cập nhật các gói, đôi khi bạn có thể muốn bỏ qua các yêu cầu nền tảng. Ví dụ: khi thêm hoặc cập nhật phần phụ thuộc của nhà phát triển sẽ không bao giờ được cài đặt trên môi trường sản xuất. Đối với điều này, chúng ta có thể sử dụng cờ
composer config platform.php 5.6.1
0composer update phpunit/phpunit --ignore-platform-reqs
Mặc dù sử dụng cấu hình
composer require foo/bar --no-audit
composer update --no-audit
2 trong composer. json có thể không bắt được tất cả các gói không phù hợp khi sử dụng Trình soạn thảo, hy vọng rằng nó sẽ bắt được hầu hết các mã không tương thích có thể tìm thấy đường vào môi trường sản xuất của bạn. Đây là một cứu cánh cho tôi trong quá khứ và giúp tôi tránh được nhiều cơn đau đầu Trình soạn thảo, trình quản lý phụ thuộc thực tế của PHP. mang đến một số tính năng mới trong Composer 2 sắp ra mắt. 4 phát hành. Nó mang đến các lệnh mới như
composer require foo/bar --no-audit
composer update --no-audit
9 và composer require foo/bar --no-audit
composer update --no-audit
0, hỗ trợ hoàn thành trình bao trên các trình bao được hỗ trợ, đề xuất cài đặt gói có cờ composer require foo/bar --no-audit
composer update --no-audit
1 khi thích hợp, xử lý tín hiệu quy trình được cải thiện, v.v.Tương tự như phiên bản nhỏ trước Composer 2. 3, Nhà soạn nhạc 2. 4 cũng yêu cầu PHP 7. 2. Các ứng dụng sử dụng các phiên bản PHP cũ hơn có thể phải chuyển sang sử dụng Composer 2. 2, đây là phiên bản Hỗ trợ dài hạn để dễ dàng di chuyển sang Composer 2. x đầu tiên
Lệnh composer require foo/bar --no-audit
composer update --no-audit
0 mới
composer require foo/bar --no-audit
composer update --no-audit
composer require foo/bar --no-audit
composer update --no-audit
0 là một lệnh mới được giới thiệu trong Composer 2. 4 "gỡ bỏ" các ràng buộc về phiên bản gói được liệt kê trong tệp composer require foo/bar --no-audit
composer update --no-audit
2 bằng cách tăng chúng lên phiên bản mới nhất trong các ràng buộc được phépLệnh
0 mới trong Composer 2. 4composer require foo/bar --no-audit composer update --no-audit
Thông tin chi tiết về lệnh0 với các ví dụ sử dụng.composer require foo/bar --no-audit composer update --no-audit
composer require foo/bar --no-audit
composer update --no-audit
0 cập nhật composer require foo/bar --no-audit
composer update --no-audit
2 với số phiên bản mới, nhưng chỉ trong giới hạn chính/phụ/bản vá cho phép. Ví dụ: nếu tệp composer require foo/bar --no-audit
composer update --no-audit
2 yêu cầu gói composer require foo/bar --no-audit
composer update --no-audit
8 với ràng buộc phiên bản composer require foo/bar --no-audit
composer update --no-audit
9, điều đó có nghĩa là Trình soạn thảo được phép cài đặt các phiên bản composer require foo/bar --no-audit
composer update --no-audit
8 trong phạm vi {
"name": ".../...",
"config": {
"platform": {
"php": "5.6.1"
}
},
"require": {
...
}
}
61 và {
"name": ".../...",
"config": {
"platform": {
"php": "5.6.1"
}
},
"require": {
...
}
}
62 Chạy composer require foo/bar --no-audit
composer update --no-audit
0 tăng ràng buộc thấp hơn của gói đối với phiên bản hiện được cài đặt{
"name": ".../...",
"config": {
"platform": {
"php": "5.6.1"
}
},
"require": {
...
}
}
9Lệnh
composer require foo/bar --no-audit
composer update --no-audit
0 không cập nhật các yêu cầu nền tảng, chẳng hạn như phiên bản PHP của các phiên bản mở rộngLệnh {
"name": ".../...",
"config": {
"platform": {
"php": "5.6.1"
}
},
"require": {
...
}
}
65 mới
{
"name": ".../...",
"config": {
"platform": {
"php": "5.6.1"
}
},
"require": {
...
}
}
nhà soạn nhạc 2. 4 thêm một lệnh mới có tên là
{
"name": ".../...",
"config": {
"platform": {
"php": "5.6.1"
}
},
"require": {
...
}
}
65, quét các gói đã cài đặt để tìm các lỗ hổng bảo mật được báo cáo. Nó tồn tại với mã lỗi nếu có bất kỳ gói nào được cài đặt có lỗ hổng bảo mật đã biếtCác lỗ hổng bảo mật được báo cáo được Packagist thu thập theo mặc định
Lệnh
65 mới trong Composer 2. 4{ "name": ".../...", "config": { "platform": { "php": "5.6.1" } }, "require": { ... } }
Thông tin chi tiết hơn về lệnh65 với các ví dụ về các định dạng đầu ra khác nhau.{ "name": ".../...", "config": { "platform": { "php": "5.6.1" } }, "require": { ... } }
Tự động quét các lỗ hổng bảo mật được báo cáo
Trong Nhà soạn nhạc 2. 4, khi một gói mới được cài đặt, gỡ bỏ hoặc cập nhật, Composer sẽ tự động quét các gói đã cài đặt để tìm các lỗ hổng được báo cáo. Điều này về cơ bản giống như việc chạy
{
"name": ".../...",
"config": {
"platform": {
"php": "5.6.1"
}
},
"require": {
...
}
}
65 tự động sau các lệnh composer config platform.php 5.6.1
60, composer config platform.php 5.6.1
61 và composer config platform.php 5.6.1
62Kiểm tra này có thể được tắt bằng cách chuyển tùy chọn
composer config platform.php 5.6.1
63 cho các lệnh composer config platform.php 5.6.1
64 và composer config platform.php 5.6.1
65composer require foo/bar --no-audit
composer update --no-audit
Cũng có thể định cấu hình định dạng kiểm tra là
composer config platform.php 5.6.1
66, composer config platform.php 5.6.1
67, composer config platform.php 5.6.1
68 hoặc composer config platform.php 5.6.1
69 bằng cách chuyển giá trị cho cờ {
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
70 mới. Giá trị {
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
70 là composer config platform.php 5.6.1
66{
"name": ".../...",
"config": {
"platform": {
"php": "5.6.1"
}
},
"require": {
...
}
}
6Lưu ý rằng lệnh
{
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
73 không thực hiện kiểm tra theo mặc định, nhưng lệnh này cũng có thể được bật và định cấu hình bằng tùy chọn {
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
74composer config platform.php 5.6.1
6Hoàn thành lệnh, gói và tùy chọn
Hỗ trợ hoàn thành lệnh được mở rộng trong Composer 2. 4 để hỗ trợ hoàn thành các lệnh, tùy chọn của Trình soạn thảo và thậm chí cả tên gói. Trong nội bộ, việc hoàn thành Composer phụ thuộc vào thư viện Symfony Console. Hiện tại, hỗ trợ được giới hạn ở Bash
Để định cấu hình hoàn thành Trình soạn thảo, hãy chạy
{
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
75 không có tham số. Trên các nền tảng được hỗ trợ, Trình soạn thảo in tập lệnh hoàn thành sẽ được đặt trong thư mục nơi trình bao tải tập lệnh hoàn thành. Thiết lập này cũng yêu cầu cài đặt gói {
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
76Đối với Debian/Ubuntu và các hệ thống tương tự
{
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
7Đối với Fedora/RHEL và các hệ thống tương tự
composer config platform.php 5.6.1
7Đối với Windows/MacOS
Thêm đầu ra tập lệnh của lệnh
{
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
75 vào vị trí thích hợp [chẳng hạn như tệp được tải bởi {
"name": ".../...",
"require": {
"php": "7.1.0"
}
}
78] nơi các tập lệnh hoàn thành lệnh được tải khi khởi tạo Bash. Lời nhắc cài đặt gói với composer require foo/bar --no-audit
composer update --no-audit
1
composer require foo/bar --no-audit
composer update --no-audit
Composer cung cấp các phần
composer config platform.php 5.6.1
64 và composer config platform.php 5.6.1
71 để cài đặt các gói. Các gói composer config platform.php 5.6.1
64 có nghĩa là các phụ thuộc sản xuất, trong khi các gói composer config platform.php 5.6.1
71 dành cho thử nghiệm, CI/CD và các phụ thuộc phát triển khácKể từ Nhà soạn nhạc 2. 4, cố gắng cài đặt gói được gắn thẻ là
composer config platform.php 5.6.1
74, composer config platform.php 5.6.1
75 hoặc composer config platform.php 5.6.1
76 mà không có cờ composer require foo/bar --no-audit
composer update --no-audit
1 sẽ nhắc người dùng cài đặt gói dưới dạng phụ thuộc composer config platform.php 5.6.1
71 thay thếĐiều này hữu ích để tránh vô tình cài đặt các khung kiểm tra, bộ phân tích tĩnh, công cụ chất lượng mã, v.v. dưới dạng phụ thuộc sản xuất
Cải tiến lệnh composer config platform.php 5.6.1
79
composer config platform.php 5.6.1
Lệnh
composer update phpunit/phpunit --ignore-platform-reqs
90, liệt kê các gói đã lỗi thời từ các gói hiện được cài đặt, đã nhận được một bản nâng cấp trong Composer 2. 4. Nó hiện hiển thị các phụ thuộc trực tiếp và chuyển tiếp một cách riêng biệtNgoài ra, lệnh
composer config platform.php 5.6.1
79 hiện hỗ trợ cờ composer update phpunit/phpunit --ignore-platform-reqs
92 chỉ liệt kê các gói có phiên bản chính đã lỗi thời. Composer đã hỗ trợ các tùy chọn composer update phpunit/phpunit --ignore-platform-reqs
93 và composer update phpunit/phpunit --ignore-platform-reqs
94 để lọc các phiên bản lỗi thời theo bản vá và phiên bản phụnhà soạn nhạc 2. 4 cũng thêm nhiều cải tiến nhỏ
- Cải thiện khả năng xử lý tín hiệu
Khi Composer nhận được tín hiệu
95/composer update phpunit/phpunit --ignore-platform-reqs
96/composer update phpunit/phpunit --ignore-platform-reqs
97 [chẳng hạn nhưcomposer update phpunit/phpunit --ignore-platform-reqs
95 khi người dùng nhấncomposer update phpunit/phpunit --ignore-platform-reqs
99], Composer sẽ đợi mọi quy trình bên ngoài đang chạy kết thúc. nhà soạn nhạc 2. 4 có thể hiển thị toàn bộ đầu ra của các quy trình trước khi thoát.composer update phpunit/phpunit --ignore-platform-reqs
- Lệnh
90 hỗ trợcomposer require foo/bar --no-audit composer update --no-audit
91 để phát hiện và thất bại nếu có bất kỳ tệp nào không tuân theo quy ước đặt tên PSR-0/PSR-4composer require foo/bar --no-audit composer update --no-audit
92 được thêm làm bí danh chocomposer require foo/bar --no-audit composer update --no-audit
60composer config platform.php 5.6.1
94 không được dùng nữa để thay thế cho góicomposer require foo/bar --no-audit composer update --no-audit
95 mớicomposer require foo/bar --no-audit composer update --no-audit
Dùng thử Nhà soạn nhạc 2. 4
Trước Nhà soạn nhạc 2. 4 chính thức phát hành, có thể thử Composer 2. 4 [hoặc phiên bản mới nhất tại thời điểm đó] bằng cách nâng cấp lên phiên bản
composer require foo/bar --no-audit
composer update --no-audit
96 hoặc composer require foo/bar --no-audit
composer update --no-audit
97 của Composer