Bỏ qua yêu cầu PHP của trình soạn nhạc


117

Chúng tôi đang sử dụng PHPCI và trình soạn nhạc. Máy chủ chạy PHPCI trên PHP 5.3.

Đối với một dự án, chúng tôi đã thêm Facebook PHP SDK, bằng cách sử dụng trình tổng hợp. Nó yêu cầu PHP 5.4. Composer được kích hoạt bởi PHPCI và được thực thi. Nhưng vì máy chủ CI vừa tải trình soạn PHP 5.3 bị lỗi với thông báo lỗi:

facebook/php-sdk-v4 4.0.9 requires php >=5.4.0 -> no matching package found.

Tất nhiên, điều này sẽ làm thất bại quá trình xây dựng của tôi trong PHPCI.

Có khả năng bỏ qua yêu cầu này không? Có thể bằng cách thêm một tùy chọn vào composer.json? Hay một tham số để gọi composer.phar?

Câu trả lời:


284

Tôi đã tìm thấy tùy chọn:

composer install --ignore-platform-reqs

Bỏ qua các yêu cầu nền tảng (php & gói mở rộng).


Chỉnh sửa: Bạn có thể bỏ qua kiểm tra nền tảng với điều này, nhưng Composer sẽ tìm nạp các gói dựa trên phiên bản PHP nhất định sau đó. Vì vậy, khi bạn cần trình soạn nhạc cũng mô phỏng phiên bản PHP trong quá trình giải quyết sự cố, bạn có thể (và nên!) Sử dụng điều này trong composer.json của mình:

{
    "config": {
       "platform": {
           "php": "5.6.6"
       }
    }
}

https://getcomposer.org/doc/06-config.md#platform


Làm thế nào tôi có thể bỏ qua kho lưu trữ riêng tư. Một số gói yêu cầu repo riêng.
dungphanxuan 23/12/17

Tuyệt vời. Nó hữu ích khi php cli chưa phản ánh sự thay đổi phiên bản.
giovannipds

Trong Composer 2 có một lệnh mới, có thể được sử dụng: php.watch/articles/composer-ignore-platform-req
Armin

3

Đối với nhiều lệnh, bạn có thể yêu cầu trình soạn nhạc bỏ qua kiểm tra phiên bản php, với tham số " --ignore-platform-reqs":

composer COMMAND --ignore-platform-reqs

điều này sẽ bỏ qua đặc tả phiên bản php.

Lưu ý rằng phần mềm có thể hoạt động hoặc không: đặc tả phiên bản php ở đó vì ở đâu đó trong mã cần ít nhất phiên bản php được chỉ định, vì vậy nếu bạn sử dụng mã đó, phần mềm sẽ bị hỏng.


--ignore-platform-reqskhông dành cho tất cả các lệnh có sẵn, như câu trả lời của bạn ngụ ý.
Armin

-11

Nếu bất kỳ thứ gì yêu cầu một phiên bản PHP cụ thể, nó sẽ không chạy trong phiên bản PHP thấp hơn. Bạn sẽ vẫn nhận được lỗi khi bỏ qua yêu cầu PHP.

Btw, PHP 5.3 không còn được duy trì, tôi thực sự khuyên bạn nên cập nhật máy chủ PHPCI.


2
Đầu tiên, tôi muốn biết cách bỏ qua yêu cầu PHP.
Armin

Bạn không có thể và bạn sẽ không phải là mã sẽ không làm việc trong một phiên bản php thấp
Wouter J

3
Nó sẽ. Chỉ máy chủ CI có phiên bản PHP thấp. Máy chủ chứa SDK facebook chạy trên PHP 5.4. Nó chỉ là về máy chủ ci, gói mọi thứ vào một tệp zip có thể triển khai đẹp mắt.
Armin

Mặc dù PHP 5.3 không còn được duy trì bởi các nhà phát triển PHP cốt lõi, một số phiên bản Linux vẫn hỗ trợ nó và sẽ hoạt động trong một thời gian. Ubuntu 12.04 LTS xuất xưởng với 5.3 và được hỗ trợ cho đến tháng 4 năm 2017 ( wiki.ubuntu.com/LTS ). Chuyển sang 14.04 là con đường nâng cấp tốt nhất nhưng có những thay đổi vi phạm đòi hỏi nhiều công việc để sửa chữa (Apache 2.4, php-fpm, v.v.). Do đó, rất nhiều Internet vẫn đang sử dụng 5.3.x.
Andrew McCombe

Đúng, thật không may, 99% các gói, ngay cả những gói được hỗ trợ tốt cũng không có yêu cầu thích hợp. Nó là một chỉ báo về những gì nhà phát triển đang sử dụng hơn bất kỳ thứ gì khác.
mschuett 15/02/17
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.