2013-07-31 23 views
6

Tôi có một dự án Laravel mà tôi muốn sử dụng ngã ba của riêng mình (đã hợp nhất một vài yêu cầu kéo). Các composer.json sau việc như mong đợi (rồi nó lấy chi nhánh tổng thể từ repo của tôi):Yêu cầu một ngã ba với nhà soạn nhạc rằng các phụ thuộc khác nên sử dụng

{ 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "http://github.com/rmasters/framework" 
     } 
    ], 
    "require": { 
     "php": "5.4.*", 
     "laravel/framework": "dev-master" 
    }, 
    ... 
    "minimum-stability": "dev" 
} 

Tuy nhiên khi tôi thêm một gói điều đó phụ thuộc vào các thành phần Illuminate cung cấp bởi Laravel (ví dụ, zizaco/entrust đòi hỏi các phiên bản tương tự theo quy định của ngã ba của tôi) tôi kết thúc với một cái gì đó như thế này:

  • Cài đặt gexge/laravel-framework (4.0.x-dev 87556b2)
  • Reading .../Composer/cache/files/gexge/framework/87556b ..... c382.zip từ bộ nhớ cache
  • tải từ bộ nhớ cache
  • Extracting lưu trữ

  • LÝ DO: zizaco/ủy thác dev-master cần chiếu sáng/hỗ trợ 4.0.x -> satisfiable bởi

    • laravel/khuôn khổ [v4. 0,5, v4.0.4, v4.0.3, v4.0.2, v4.0.1, v4.0.0-BETA4, v4.0.0-BETA3, v4.0.0-BETA2, v4.0.0, 4.0.x-dev],
    • gexge/framework [4.0.x-dev, v4.0.0 , v4.0.0-BETA2, v4.0.0-BETA3, v4.0.0-BETA4, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5],
    • shrimpwagon/laravel-framework [4.0.x-dev, v4.0.0, v4.0.0-BETA2, v4.0.0-BE TA3, v4.0.0-BETA4, v4.0.5],
    • chiếu sáng/hỗ trợ [4.0.x-dev, v4.0.0, v4.0.0-BETA2, v4.0.0-BETA3, v4.0.0-BETA4, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5].

nào thực sự kết thúc với cả hai ngã ba của tôi và ngã ba này được cài đặt, với ngã ba gexge dùng ưu tiên trong autoloader.

Có cách nào để phụ thuộc nhận chiếc nĩa của tôi thay vì tìm cách khác? Ngã ba của tôi có cùng tên gói (composer.json chưa được thay đổi) - vì vậy tôi cho rằng nó sẽ hoạt động.

Cách khác, tôi có thể chặn một số gói nhất định không? (Tôi đã không tìm thấy bất kỳ tài liệu nào cho điều này.) Thật đáng buồn, không phải nhánh nào dường như có nhiều lý do để có mặt trên Packagist ngay từ đầu, nhưng tôi đoán Composer sẽ có thể giải quyết vấn đề này.

Trả lời

10

Ngã ba của bạn có bí danh chi nhánh cho tập hợp chính thành 4.1.x-dev, vì vậy nó không khớp với yêu cầu 4.0.*.

Giải pháp là bí danh gói, bằng cách yêu cầu nó như thế này

{ 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "http://github.com/rmasters/framework" 
     } 
    ], 
    "require": { 
     "php": "5.4.*", 
     "laravel/framework": "dev-master as 4.0.0" 
    }, 
    ... 
    "minimum-stability": "dev" 
} 

Và quả thực những dĩa không nên vào Packagist, tôi sẽ liên hệ với chủ sở hữu.

+0

Thiên tài, cảm ơn Jordi! – Ross

+0

Tôi vẫn nhận được điều này mặc dù các ngã ba tôm hùm không phải là trên Packagist nữa, bất kỳ cách nào xung quanh nó? –

+1

BẠN ĐÃ THAM GIA CUỘC SỐNG CỦA TÔI – alex

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