25

理想的な状況

多くの場合、Symfony2 プロジェクトに取り組んでいるときに、依存関係の 1 つで変更したいものを見つけます。ベンダーで単純に変更し、変更をプル リクエストとして簡単にプッシュする方法を見つけることができれば、(ローカルの子バンドルでパーツをオーバーライドするよりも) もっと頻繁に貢献するでしょう。

問題

次の更新でコンポーザーがびっくりすることなく、ベンダーディレクトリを変更することはできません。プル リクエストを送信すると、ベンダーで実際にコードを使用できるようになるまでにかなりの時間がかかる場合があります。これは実際に、新しい機能を提供することの妨げになっています。

今のやり方

私がバンドルに貢献する通常の方法は、フォークを作成し、そのフォークをベアボーン symfony 標準版アプリに配置し、変更を加えてからプル リクエストを送信することです。

フォークを入れるcomposer.json

私が考えることができる唯一の解決策は、編集中のバンドルの packagist 依存関係を削除し、github から (パッケージとして) composer でフォークを含めることです。そうすれば、コードをすぐに取得でき、引き続き貢献できます。

これが唯一の解決策ですか?どのようにしますか?

同時に別のプロジェクトに取り組んでいる間にバンドルに貢献するためのヒント/アドバイスをいただければ幸いです!

4

4 に答える 4

49

いや…これは壊れている。

フォークを含める公式の方法を試しました。composer.json の例 (オリジナル:kitano、フォーク: jstoeffler) を次に示します。

(急いでいる人のために: これはうまくいきません)

"repositories": [
//...
    {
        "type": "vcs",
        "url": "https://github.com/jstoeffler/KitanoConnectionBundle",

    },
//...
],

元のバンドルを使い続けます。何が問題なのかわからず、すべてがどのように機能するのかわかりませんが、プロジェクトにフォークを正常に追加する方法は次のとおりです。

"repositories": [
//...
    {
        "type": "package",
        "package": {
            "name": "kitano/connection-bundle",
            "version": "dev-master",
            "source": {
                "url": "https://github.com/jstoeffler/KitanoConnectionBundle.git",
                "type": "git",
                "reference": "master"
            },
            "autoload": {
                "classmap": [""]
            }
        }
    },
//...
],
于 2015-01-15T18:34:29.477 に答える
8

[更新: 回答は無効になりました]

コメントの 1 つで指摘されているように、この回答は数年前のものであり、もはや正しくありません。続行する正しい方法については、以下の回答を参照してください。

[以下の元の回答]

これは、composer の作成者である Jordi Boggiano (@Seldaek) が推奨するアプローチです。今年初めの Symfony Live San Francisco での彼の講演 (2 分目) を参照してください: http://www.youtube.com/watch?list=PLo7mBDsRHu11ChvScWUE7MN1Qo5QVHQEz&feature=player_detailpage&v=P3NwF8RV1lY#t=120s

于 2012-11-11T10:15:58.170 に答える