2012-02-01 8 views
1

symfony2のSymblog tutorialを使って、フォームを作成する際に私はContact Entity(Entity/Enquiry.php)を作成して、いくつかのフィールドとこれらのフィールドにアクセスするいくつかのメソッドを定義するところに来ました。 Form/EnquiryType.phpという別のフォルダを作成してフォームを作成し、contact.html.twigを表示します。 Entity/Enquiry.phpとForm/EnquiryType.phpの名前空間を2つ作成した理由を理解できません。彼らはお互いに対処しなければならない時に。なぜ私たちは両方のクラスを1つのフォルダまたは1つのファイルに書き込んでいないのですか?もう1つの質問。それらはMVCのControllerまたはViewに属していますか?Entity/Enquiry.phpとForm/EnquiryType.phpを別々のフォルダに作成する理由Symfony2?

答えて

1

フォームタイプは、オブジェクト(エンティティなど)からのデータがフォームにマッピングされる方法(およびその逆)を設定するためのものです。

エンティティは「エンティティ」という名前であってはなりません。ビジネスオブジェクトだけでなく、doctrine2というレイヤを通じて永続化することができます。

懸念事項の分離についてお答えするには、 エンティティはM、 程度ですが、フォームタイプはユーザー入力(VCなど)に関するものです。 フォームのライフサイクルを処理する場所であるため、ヒューマンインタフェースをレンダリングしてユーザーが入力できるようにするため、 コントローラです。

0

理由は論理的な分離です。 MVCのすべての部分を1つのフォルダ/名前空間に定義するのはなぜですか?それは混乱するので。そのため、論理的分離が必要です。

エンティティのすべてが関連するフォームタイプを持つ必要はありません。フォームなしのエンティティを使用することは正常です。

+0

urレスポンスのおかげで、ここでエンティティは何を意味していますか?フォームフォルダのように私はそれにフォームがあると理解できます。エンティティフォルダが何を表すか – ScoRpion

+0

[エンティティについて](http://www.doctrine-project.org/docs/orm/2.1/en/reference/architecture.html#entities)。 –

関連する問題