私は、新しいプロジェクトと作曲家を使ったSymfony 2の依存関係のかなりのピクルに入っています。作者、最低限の安定性と依存関係の依存性
最初に、私はsymfony/framework-standard-edition v2.1.5を作曲家を使ってインストールします。これにより、これらの要件を持ち、最小安定性ノードを持たないコンポーザファイルが生成されます。
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.1.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.0.*",
"twig/extensions": "1.0.*@dev",
"symfony/assetic-bundle": "2.1.*",
"symfony/swiftmailer-bundle": "2.1.*",
"symfony/monolog-bundle": "2.1.*",
"sensio/distribution-bundle": "2.1.*",
"sensio/framework-extra-bundle": "2.1.*",
"sensio/generator-bundle": "2.1.*",
"jms/security-extra-bundle": "1.2.*",
"jms/di-extra-bundle": "1.1.*",
"kriswallsmith/assetic": "1.1.*@dev"
},
これはうまくいきます。正常に動作し、すべての最新の安定版がインストールされます。
次に、私がバンドルを追加 - >https://packagist.org/packages/kunstmaan/admin-bundle
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.1.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.0.*",
"twig/extensions": "1.0.*@dev",
"symfony/assetic-bundle": "2.1.*",
"symfony/swiftmailer-bundle": "2.1.*",
"symfony/monolog-bundle": "2.1.*",
"sensio/distribution-bundle": "2.1.*",
"sensio/framework-extra-bundle": "2.1.*",
"sensio/generator-bundle": "2.1.*",
"jms/security-extra-bundle": "1.2.*",
"jms/di-extra-bundle": "1.1.*",
"kriswallsmith/assetic": "1.1.*@dev",
"kunstmaan/admin-bundle": "dev-master"
},
このバンドルは
(https://packagist.org/packages/doctrine/doctrine-fixtures-bundle) "DEV-マスター" の "教義/ドクトリン・備品・バンドル" に依存し、そのバンドルが依存*(https://packagist.org/packages/doctrine/data-fixtures)
私がプロジェクトでコンポーザーアップデートを実行すると、doctrine/data-fixturesの依存関係を満たすものがないことがわかります。名前のタイプミス、または最小安定性がデフォルトで安定しているため、使用可能な「安定」バージョンがありません。
doctrine-fixtures-bundleを "dev"安定性にインストールしたいのは、dev-masterを置くと自動的にこの依存性が "dev"安定性に置かれるからです。しかし、これはこのデポのデープのために何もしません、彼らは私の最小限の安定性であるので、安定してインストールしたいと思っています。
この時点では、doctrine/data-fixtures:dev-masterを追加するか、プロジェクトのcomposer.jsonに@devを付けて修正できます。
しかし、これは一例(knpmenubundle、fosuserbundleなど)なので、自分の作曲者ファイルにインストールしないdepsのすべてのdepsを手動で追加しなければなりません。
もう一つの解決策は私のプロジェクトの最小安定性をdevに落とすことですが、その当時、Symfony2のような安定したものを含め、すべて私のdepsはタグ付きリリースではなく開発版をインストールします。