2013-07-31 15 views
6

Mam projekt Laravel, który chciałbym użyć mojego własnego widelca (który połączył kilka ciągnięć). Poniższy composer.json działa zgodnie z oczekiwaniami (nie pobiera oddział główny z mojego repo):Wymaganie widelca z kompozytorem, że inne zależności powinny używać

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

Jednakże kiedy dodać pakiet, który zależy od składników Illuminate świadczonych przez laravel (na przykład, zizaco/entrust która wymaga tych samych wersjach przewidziane przez mojego talerza) I skończyć z czymś takim:

  • Instalacja gexge/laravel-ramowej (4.0.x-dev 87556b2)
  • Reading .../Kompozytor/cache/files/gexge/framework/87556b ..... c382.zip z pamięci podręcznej
  • Ładowanie z pamięci podręcznej
  • Wyodrębnianie archiwum

  • Powód: zizaco/powierzyć dev-master wymaga oświetlenia/support 4.0.x -> spełnialna przez

    • laravel/Framework [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],
    • iluminacja/wsparcie [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].

które faktycznie kończy się zarówno z mojego talerza i zainstalowanego tym widelcem, z widelcem gexge mającego pierwszeństwo w autoloaderze.

Czy istnieje sposób na uzależnienie się od zbierania widelca zamiast szukania innego? Mój fork ma tę samą nazwę pakietu (composer.json nie został zmieniony) - więc założyłem, że to zadziała.

Czy mogę też zablokować wybrane paczki? (Nie znalazłem żadnych dokumentów na ten temat). Irytując, żaden z widelców nie wydaje się mieć wiele powodów, by być na Packagist, ale myślę, że Composer powinien być w stanie to obejść.

Odpowiedz

10

Twój widelec ma alias rozgałęziony dla zestawu nadrzędnego na 4.1.x-dev, więc nie pasuje do wymogu 4.0.*.

Rozwiązaniem jest alias pakiet, zobowiązując ją jak ten

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

i rzeczywiście te widły nie powinno być na Packagist będę skontaktować się z właścicielami.

+0

Geniusz, dzięki Jordi! – Ross

+0

Wciąż to rozumiem, chociaż widelec krewetek nie jest już w Packagist, w żaden inny sposób? –

+1

ZBAWIŁEŚ MOJE ŻYCIE – alex

Powiązane problemy