さて、symfony2を使ってウェブサイトを作ろうとしています。
他のすべてのバンドルを制御/まとめる「メイン」バンドルを作成する必要がありますか?他のバンドルでは、写真に関連するものを制御する「ギャラリー」バンドルと、ショップパーツを制御する「ストア」バンドルを考えています。
何が最善の(または少なくとも良い)実践であり、プロのチームはそれをどのように行うでしょうか?
symfonyのドキュメントによると、バンドルは一貫性のある閉じた構造である必要があります。したがって、たとえば「ストア」と「ギャラリー」が何らかの形で関連している場合(たとえば、同じモデルを使用している場合)、それらは1つのバンドル(AppBundle、CoreBundle、PlatformBundleなど)に含まれている必要があります。ただし、ギャラリーが完全に別個のコードであり、別のプロジェクトに簡単に参加できる場合は、別個のバンドルにギャラリーを除外することを検討する必要があります。
githubのいくつかのプロジェクトを見て、他のプロジェクトがこれをどのように処理するかを調べるのは良い考えだと思います。
次の質問とそれらに対する私の回答を参照してください。
基本的に、私の最後のプロジェクトでは、アプリ固有のコードにバンドルを使用していません。唯一の例外は、ハードコードされたもの(Doctrine Fixturesなど)をバンドルに含めることですAppBundle
。モデル、コントローラー、サービス、フォームタイプなど、その他すべてはバンドルに含まれていません。
@Cyprianが言ったように、バンドルは単独で機能する機能のセットです。開発中に起こるように、私たちは物事がいつ分離するかを常に知っているわけではありません。時間とともにやってくる。
個人的には、2月からSymfony2を使用しており、マニュアルや関連書籍を読んで理解を深めることをやめませんでした。それは大いに役立ち、非常に興味深い読み物です、私はあなたに保証します:)
これが私の一番のお気に入りのドキュメントページで、おいしいに関する啓発的なブログ投稿です。
すぐに質問する場合は、symfony1.xで行っていた「フロントエンド」と「バックエンド」を忘れてください。(単一の行のように)モデルエンティティについて考え、1つのバンドルでビルドします。コードが大きくなるにつれて、逆アセンブルしてバンドルに分離する方法がわかります。小さな方法で機能を分離し、リファクタリングすることを覚えておく必要があります。