0

私たちの会社では、すべての新しいプロジェクトに Symfony2 を使用することを目指しています。FOSUserBundle や KnpMenuBundle など、ほぼ常にプロジェクトに追加するバンドルがいくつかあります。新しいプロジェクト フォルダーに単純にコピーして実行composer.phar install(または create-project のいずれか動作する方) し、使用するすべての依存関係と追加のバンドルと共に symfony2 をインストールする composer.json ファイルを維持したいと考えています。

つまり、最初に を実行しphp composer.phar create-project symfony/framework-standard-edition path/ 2.2.1、次に composer.json を編集してバンドルを追加/削除し、最後に composer.phar update を実行して必要なバンドルをインストールする必要はありません。

これをどのように達成できるかについて何か考えはありますか?

4

2 に答える 2

1

github でsymfony-standardをフォークし、composer.json を変更し、composer.lock を更新してから、自分のコピーからチェックアウトして実行することができます。composer install

于 2013-05-23T08:53:29.017 に答える
1

composer.json の vcs (つまり git ) リポジトリを作成して、すべての変更を常にチェックイン/コミットすることができます。

composer は json を使用し、comments json のネイティブ サポートがないため、composer.json を使用して、定期的にインストールするバンドルをコメント/コメント解除するだけにするのは少し難しくなります。

しかし、その目標を達成する方法は 2 つあります。

1) composer.json を .yml ファイルに逆方向に変換できるIgorW のcomposer-yamlコンバーターを使用します。

2) Seldaek / Jordi Boggianoは、composer.json でコメントを実装する別の方法について言及しました。

{
    "_comment" : {
        "friendsofsymfony/rest-bundle" : "0.12.0",
        "_" : "_"
    },     
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "*@dev",

         // ... more stuff here 
     },

     // more stuff here
}

このようにして、行をコメントからrequireに移動するだけで、現在のインストールの内外にバンドルを簡単にコピーできます。( " _" : "_" エントリは、_comment 内のすべてのバンドルの後に末尾のコンマがあり、有効な JSON を保持するためにあります)。

...しかし、これだけではすぐに機能するプロジェクトが得られるわけではありません。

結論:

ほとんどのバンドルは設定が必要であり、機能するためには少なくともすべてをカーネルに登録する必要があります。

リポジトリに composer.json があるだけでは役に立ちません。

symfony/symfony-standard を fork できます ... 必要なすべての変更 (バンドルの登録、 composer.json の変更) をリポジトリに追加し、このリポジトリを維持します。

フォークされたリポジトリは最新のコミットで更新されないため、このリポジトリを維持するにはいくつかの作業が必要になります。リポジトリを最新の状態に保ちたい場合は、symfony/symfony-standard から最新のコミットをマージする必要があります。

しかし、独自のものを作成することは間違いなく進むべき道です...「composer install」を呼び出した後にすべての構成とバンドルを含む作業プロジェクトを作成するために渡すことができる composer.json のみを持つことは (現在) 不可能です。

于 2013-05-23T08:59:59.480 に答える