私は自分のフォークを使用したいLaravelプロジェクトを持っています(それはいくつかのプルリクエストをマージしました)。次の composer.json は期待どおりに機能します (リポジトリから master ブランチを取得します)。
{
"repositories": [
{
"type": "vcs",
"url": "http://github.com/rmasters/framework"
}
],
"require": {
"php": "5.4.*",
"laravel/framework": "dev-master"
},
...
"minimum-stability": "dev"
}
ただし、Laravel が提供する Illuminate コンポーネントに依存するパッケージを追加すると (たとえば、zizaco/entrust
フォークが提供するものと同じバージョンが必要)、次のような結果になります。
- gexge/laravel-framework のインストール (4.0.x-dev 87556b2)
- .../Composer/cache/files/gexge/framework/87556b.....c382.zip をキャッシュから読み取る
- キャッシュからの読み込み
アーカイブを抽出しています
理由: zizaco/entrust dev-master には、illuminate/support 4.0.x が必要です -> で満足できます
- 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-開発]、
- 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]、
- エビワゴン/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],
- 照明/サポート[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]。
実際には、私のフォークとこのフォークの両方がインストールされ、gexge フォークがオートローダーで優先されます。
別のフォークを見つけようとするのではなく、依存関係にフォークをピックアップさせる方法はありますか? 私のフォークには同じパッケージ名があります (composer.json は変更されていません)。
または、特定のパッケージが選択されないようにブロックできますか? (これに関するドキュメントは見つかりませんでした。) 厄介なことに、そもそもどちらのフォークも Packagist を使用する理由があまりないように見えますが、Composer はこれを回避できるはずです。