2012-08-13 13 views
7

私はsymfony 2を使ってウェブサイトを作ろうとしています。バンドルはどうすればいいですか? (symfony 2)

他のすべてのバンドルを統制する/入れ子にしてください。 他のバンドルでは、写真に関連するものをコントロールする「ギャラリー」バンドルと、店舗の部分をコントロールする「ストア」バンドルがあります。

練習にはどのようなものがありますか?また、専門チームはどのようにしていますか?

答えて

3

symfonyのドキュメントによれば、バンドルは一貫性があり、閉じた構造でなければなりません。たとえば、「store」と「gallery」が何らかの形で関連している場合(たとえば、同じモデルを使用する場合)、それらは1つのバンドル(AppBundle、CoreBundle、PlatformBundle - あなたが望むものであれ)になければなりません。しかし、ギャラリーが完全に別のコードであり、別のプロジェクトに簡単に参加できる場合は、バンドルをバンドルから除外することを検討する必要があります。

私は良い考えは、githubのいくつかのプロジェクトを見て、他の人がこれをどう扱うかを見ていると思います。

+0

私は実際にgithubがどのように動作するか、まともな時間内にやりたいことと一致するプロジェクトを見つける方法を知らない。しかし、あなたが言うことは、基本的なウェブサイトを持ち、次に他のプロジェクト(ギャラリーと店舗)に使うことができる特別な部品のためのバンドル(appBundleまたはcoreBundle)を1つ作ることは、彼ら自身のバンドルを持っていますか? –

+0

はい - 正確です。このアプローチにはいくつかの利点があります。例えば、1)少し効率的です2)一目ぼれに別の場所で何が使えるかを見ることができます。 3)IMOあなたのテストをこのように管理する方が簡単です。4)あなたのアプリはよりポータブルです。あなたのアプリの独立した部分は別として、utilオブジェクト(別の数学クラスやクラスがhttpステータスなどを定義していると言うようなもの)や、アプリケーションとは論理的に非常に異なる部分(AdminBundleなど)を別々に作成することも考えられます。そして、一般的に多くの探検の後、私はこれが最も便利で一般的な解決策であることを発見しました。 – Cyprian

2

は彼らに以下の質問と私の答えを参照してください。

基本的に、私の最後のプロジェクトで、私はアプリ特定コードのためのバンドルを使用していませんよ。唯一の例外は、ハードコードされたものが束になることです - 私がAppBundleに入れたDoctrine Fixturesのようなものです。モデル、コントローラ、サービス、フォームの種類などはすべてバンドルされています。

+0

あなたのアンサーに感謝します。私は現時点でsymfony2を初めて使っていますので、基本的な設定を変更することは賢明ではないかもしれません。しかし、私はこのアプローチを見ていきます。 –

+0

ねえエルヌール、私はあなたの他のスレッドをいくつか読んできましたし、どのバンドルの外にコントローラーやフォームなどを置くのか把握していません。それはどうやって正確に動作しますか?バンドルはあなたのために実際にどのような目的を果たしますか? –

+0

私はここで私がここで与えたリストから最初の質問に対して、束の外にコントローラ、フォームなどを定義する例を展開する予定です。ちょうど時間が必要です。 –

1

@Cyprianのように、バンドルは、単独で動作する機能のセットです。開発中に起こるように、私たちは物事がいつ別個であるかを常に知っているとは限りません。それは時間が来る。

個人的には、2月からSymfony2で作業していますが、深く理解するためにマニュアルや関連書籍を読んでいることは決してありません。それは多くの助けと非常に興味深い読んで、私はあなたを保証します:

ここに私のtop favourites documentation pages, en enlightening blog posts on deliciousです。

すぐに質問をするには、symfony 1.xで行っていたように「フロントエンド」と「バックエンド」を忘れてしまいます。モデルエンティティ(A列)を考えて、1つのバンドルを構築してください。コードが大きくなると、バンドルで逆アセンブルおよび分割する方法がわかります。小さなメソッドとリファクタリングで関数名を分離することだけを心に留めておく必要があります。

関連する問題