2014-10-02 24 views
46

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

Đối với dự án chúng tôi đã thêm SDK PHP của Facebook, sử dụng trình soạn nhạc. Nó đòi hỏi PHP 5.4. Nhà soạn nhạc được kích hoạt bởi PHPCI và được thực hiện. Nhưng vì máy chủ CI vừa bị nhà soạn nhạc PHP 5.3 thất bạ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. 

Điều này cho phép xây dựng của tôi trong PHPCI, tất nhiên.

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

Trả lời

121

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

composer install --ignore-platform-reqs 

Bỏ qua yêu cầu nền tảng (php & gói ext-).


Edit: Bạn có thể bỏ qua kiểm tra nền tảng với điều này, nhưng Composer sẽ lấy các gói dựa trên trao phiên bản PHP sau đó. Vì vậy, khi bạn cần soạn nhạc cũng bắt chước một phiên bản PHP trong depedency giải quyết, bạn có thể (! Và nên) sử dụng này trong composer.json của bạn:

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

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

+0

Làm cách 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

+0

Bạn không thể. Bạn cần đảm bảo rằng Git được thực thi bởi nhà soạn nhạc, có quyền truy cập vào các bản repos riêng tư, thường sử dụng các khóa ssh. Bạn cũng có thể lưu trữ thông tin xác thực auth trong một tập tin cấu hình toàn cầu của nhà soạn nhạc, cho các máy chủ satis riêng. Nhưng miễn là một gói được ** yêu cầu ** bạn không thể bỏ qua nó. Điều này chỉ hoạt động với các yêu cầu nền tảng. – Armin

0

Nếu bất cứ điều gì yêu cầu 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 các lỗi khi bỏ qua yêu cầu PHP.

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

+0

Trước tiên tôi muốn biết làm thế nào để vượt qua yêu cầu PHP. – Armin

+0

Bạn không thể và bạn sẽ không làm mã sẽ không hoạt động trong phiên bản php thấp hơn –

+1

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

Các vấn đề liên quan