私はSymfonyも初めてで、この質問の結果に興味を持って従いますが、価値があるので、私の見解は次のとおりです。
バンドルとは、ファイル、アセット、PHP クラスとメソッド、テストなどのグループです。グループ化のロジックは、好きなものにすることができます。場合によっては、グループ化が何であり、なぜそれが行われたのかが非常に明白です。たとえば、Symfony2 用のブログ システムを作成し、それをリリースしたい場合は、それをバンドルにします。これは、ドキュメントで最もよく使用される例です。
しかし、1 つの小さな機能としてリリースしたいものすべてにバンドルを使用することもあります。たとえば、すべてのコントローラーのデフォルト ルートを作成するこのバンドルを考えてみましょう。これは、ブログやフォーラムのように完全に開発されたプラグイン/機能ではありませんが、プロジェクトに簡単にインポートできる小さなコードであり、他のすべてのものから完全に分離されたままのバンドルです。
最後に、プロジェクトの内部でバンドルを使用することもできます。
あなたの特定の状況に対する私の見解:
早くて簡単:
MySite\MyCode
-- 作業は完了しますが、作成しようとしているコードを分割する論理的な方法がない可能性があります。
2 つのサイト間にさらに独自の機能があり、明確にするためにそれらを分離したい場合:
MySite\SharedFeatures
MySite\Site1Features
MySite\Site2Features
その場所のすべてが本当に気に入っている場合、または複雑なプロジェクトがある場合は、次のようになります。
MySite\MySiteMain
(独自のバンドルに値しない共有機能とキャッチオールの雑多)
MySite\News
MySite\Site1FeatureSomethingOrOther
MySite\Site2FeatureSomethingOrOther
コードの論理グループに固執したいのは間違いないと思います-したがって、「Site1\NewsとSite2\Newsをバンドルする」と「MySite\Site1NewsとMySite\Site2News」の例は最善の方法ではないと思います。Site1 と Site2 は実装なので、各サイトのニュース ページに個別のバンドルを作成するのは逆効果に思えます。1 つのニュース コンポーネントを作成し、それをビルドして 2 つの異なる方法で使用することをお勧めします。
2 つのドメインに関する質問については、両方のドメインを同じコードに向けて、どのドメインが要求されているかをコード内でテストするか、同じコードの 2 つのコピーをチェックアウトして、構成ファイルを少し変更することができます (この1 つの場所でコードを編集し、両方のコピーを更新するため、必ずしもDRYの考え方に違反しているわけではありません)。