2016-07-15 24 views
1

私は新しいSymfony 3.1.2プロジェクトを作成しました。ここで私は将来的に再利用する予定の新しいバンドルを開発し始めました。サードパーティのライブラリ(各composer.jsonに定義されている)上のComposerは私のバンドルの依存関係を更新します

app/ 
bin/ 
src/ 
    AppBundle/ 
    MyVendorName/ 
     CoolBundle/ 
     Controller/ 
     composer.json 
     ...other files and folders... 
     AwesomeBundle/ 
     Controller/ 
     composer.json 
     ...other files and folders... 
test/ 
var/ 
web/ 
composer.json 
...other files... 

両方CoolBundleAwesomeBundle dependes:だから私のディレクトリ構造はこのようなものです。

今、私はcomposer updateをプロジェクトに呼び出す方法はありますか?バンドルの依存関係も更新されますか?

答えて

1

作者のリポジトリを使用して解決策を見つけました。

私は自分のバンドルをbundlelesという名前の新しいフォルダに移動しました。これはsymfonyがデフォルトでsrcフォルダ内のバンドルを自動ロードするために必要で、2回オートロードされているとどうなるかわかりません(誰かがこれを明らかにするかもしれません)。だから、新しいフォルダ構造は、私がいる限り、彼らが持っているように(それは、このバンドルを追加composer updateを実行すると、私は今

..., 

"repositories": [ 
    { 
     "type": "path", 
     "url": "bundles/MyVendorName/*" 
    } 
], 
"require": { 
    "php": ">=5.5.9", 
    "symfony/symfony": "3.1.*", 
    "myvendorname/coolbundle": "@dev", 
    "myvendorname/awesomebundle": "@dev", 
}, 
... 

を追加しました私のアプリのcomposer.jsonファイル(一番下の1)に

app/ 
bin/ 
src/ 
    AppBundle/ 
bundles/ 
    MyVendorName/ 
     CoolBundle/ 
     Controller/ 
     composer.json 
     ...other files and folders... 
     AwesomeBundle/ 
     Controller/ 
     composer.json 
     ...other files and folders... 
test/ 
var/ 
web/ 
composer.json 
...other files... 

続いています有効なcomposer.jsonファイル)を自分の依存関係を含めて私のプロジェクトのvendorフォルダにコピーし、それらは自動的にロードされます。

シンボリックリンクを使用してローカルバンドルが追加されているため、バンドルで行った変更はすべてアプリケーションに影響します。詳細はcomposer's documentationをご覧ください。

関連する問題