12

パッケージに依存関係を追加したいzendframework/zend-dbので、composer.json に追加しました。

"repositories": [
    {
        "type": "composer",
        "url": "http://packages.zendframework.com/"
    }
],
"require": {
    "php": ">=5.3.2",

    "symfony/class-loader":  "dev-master",
    "symfony/console":       "dev-master",
    "symfony/filesystem":    "dev-master",
    "symfony/finder":        "dev-master",
    "symfony/locale":        "dev-master",
    "symfony/yaml":          "dev-master",
    "doctrine/dbal":         "dev-master",
    "zendframework/zend-db": "dev-master"
}

zendframework/zendframework問題は、composer がパッケージ全体をインストールすることです。

理由はありますか?

4

3 に答える 3

11

ここで説明されているようにhttp://packages.zendframework.com/#composer ZF2 は、すべてのモジュールを含む composer リポジトリを提供するようになりました。

リポジトリをパッケージに追加するには:

"repositories": [
    {
        "type": "composer",
        "url": "http://packages.zendframework.com/"
    }
],

ここから、パッケージを個別に追加できます。

"require": {
    "zendframework/zend-config": "2.0.*",
    "zendframework/zend-http": "2.0.*"
},

必要なパッケージを指定するだけで済みます。依存関係がある場合は、compser によって解決されます。

これは動作しないようですが...

于 2012-08-09T20:39:59.730 に答える
2

これは、zend github の zend-db の composer.jsonですファイルによると、zend-db には依存関係がありません。

これは、dev-master からパッケージをダウンロードしようとしていて、dev-master の composer.json に不一致があることが原因である可能性があります。

必要なバージョンを 2.0.* などに変更して、もう一度やり直すことをお勧めします。


また、Zend Framework は疎結合ですが、古いバージョンのフレームワークでは依存関係が明示的ではありませんでした。

たとえば、ZEND 1.9 の zend_db のソース コードをざっと調べたところ、少なくとも次のパッケージに依存していることがわかりました。

  • コントローラ
  • 設定
  • フィルター
  • ジェイソン
  • ローダー (オートローディングの場合、composer オートローダーのためにこれは必要ないかもしれないと思います)
  • ウリ
  • 意見
  • 山火事

これらのパッケージには他の依存関係がある可能性があるため、ダウンロード サイズが異なります。とにかく、King が説明したように、Zend Framework 2.0 はバージョン 1.9 とは異なり、おそらくこれは 2.0 には当てはまりません。

于 2012-07-31T21:52:51.017 に答える
0

一部のパッケージの依存関係にいくつかの php 拡張機能があるかどうかを確認してください。zend-http パッケージをインストールしようとしましたが、同じ問題が発生しました。ここでは、zend-http パッケージのサブ依存関係である zend-validate で必要とされるため、php_intl 拡張機能をインストールすることを提案しました。この拡張機能を php.ini に追加すると、問題は解決しました。

于 2013-03-28T21:41:08.293 に答える