Lỗi nói rằng bản cập nhật yêu cầu phiên bản PHP cao hơn phiên bản mà tệp
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
1 của bạn được đặt thành. Để giải quyết, bạn cần chỉnh sửa cài đặt composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
2 trong tệp composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
1 của mìnhMục đích của cài đặt này là để đảm bảo rằng Trình soạn thảo chỉ cài đặt các phụ thuộc tương thích với từng môi trường của bạn. Ví dụ: nếu môi trường phát triển của bạn đang chạy PHP 7. 4. 11, nhưng quá trình sản xuất đang chạy PHP 7. 2. 24, bạn sẽ muốn đặt cài đặt thành
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
4 để Trình soạn thảo không cài đặt bất kỳ phụ thuộc nào yêu cầu PHP 7. 3 hoặc 7. 4, vì cuối cùng chúng sẽ gây ra lỗi cú pháp PHP khi sản xuấtTrước khi thay đổi cài đặt, trước tiên hãy xác định phiên bản PHP nào đang chạy trên từng môi trường của bạn và chuyển sang phiên bản nhỏ nhất
Sau đó, mở tệp
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
1 của bạn trong trình soạn thảo văn bản và tìm cài đặt composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
2 của bạn{
"...": "...",
"config": {
"platform": {
"php": "7.0"
}
}
}
Thay đổi giá trị thành phiên bản PHP thấp nhất đang sử dụng. Sau đó thử kiểm tra các bản cập nhật hoặc chạy lại
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
7Nếu phiên bản PHP thấp nhất đang sử dụng thấp hơn phiên bản mà bản cập nhật yêu cầu, bạn sẽ cần cập nhật [các] môi trường của mình để đáp ứng yêu cầu mới
Composer đã có tùy chọn
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
8 [chú ý chữ s trong composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
9], nhưng nó bỏ qua tất cả các yêu cầu nền tảng, bao gồm phiên bản PHP, tiện ích mở rộng [composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
0] và composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
1Tùy chọn
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
2 mới có thể được sử dụng để đặt các yêu cầu cụ thể mà Trình soạn thảo có thể bỏ quaBỏ qua nhiều yêu cầu nền tảng
Bạn có thể chỉ định một hoặc nhiều yêu cầu nền tảng để bỏ qua bằng cách sử dụng tùy chọn này nhiều lần
Ví dụ: để bỏ qua phiên bản PHP và
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
3, nhưng thực thi tất cả các yêu cầu nền tảng khác, bạn có thể sử dụng lệnh như thế nàycomposer install --ignore-platform-req=php --ignore-platform-req=ext-zip
Cài đặt các gói Trình soạn thảo trên các phiên bản PHP chưa được phát hành
Trường hợp sử dụng phổ biến của tùy chọn
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
4 sẽ là kiểm tra các gói PHP trong các phiên bản PHP chưa được phát hành hoặc bản dựng composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
0 của PHPCác thư viện như PHPUnit đi kèm với ràng buộc phiên bản PHP khá nghiêm ngặt trong tệp
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
1 của chúng, điều này ngăn không cho chúng cài đặt các thư viện trong phiên bản composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
0 của PHPThay vì sử dụng
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
3, sẽ bỏ qua tất cả các yêu cầu nền tảng, chẳng hạn như tiện ích mở rộng [có thể cần thiết để gói hoạt động], bạn có thể sử dụng tùy chọn composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
4 để chỉ định có chọn lọc các yêu cầu nền tảng mà bạn cố ý bỏ qua 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 install --ignore-platform-req=php --ignore-platform-req=ext-zip
6 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 install --ignore-platform-req=php --ignore-platform-req=ext-zip
6 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 install --ignore-platform-req=php --ignore-platform-req=ext-zip
8 để đặ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. -
________số 8Đâ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
9, trong khi cài đặt thiết lập nền tảng sử dụngcomposer install --ignore-platform-req=php --ignore-platform-req=ext-zip
6 trong tùy chọncomposer install --ignore-platform-req=php --ignore-platform-req=ext-zip
1composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
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 install --ignore-platform-req=php --ignore-platform-req=ext-zip
0Mặc dù sử dụng cấu hình
composer install --ignore-platform-req=php --ignore-platform-req=ext-zip
6 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