次のシナリオを検討してください
と の 2 つのエンティティを含む単純なデータベースがuserありcategoryます。
私たちの仮説では、usera は型のみを持つことができcategory、 aはncategoryに関連付けることができるとしましょう。 users
ここで、ユーザー テーブルを編集して別のテーブルに関連付けることができるWeb ページを考えてみましょuserう。
私が知る限り (そして私は一般的に symfony にはまだ慣れていません)、Doctrine と symfony2 をタンデムで使用すると、たとえば、アノテーション メソッドを使用すると、2 つのエンティティ (php クラス) が作成されます。ROLE_ADMINISTRATORcategory
埋め込みフォーム
を表示するフォームを作成します。表示のuserために - そしてもちろん永続化します! - また、彼categoryは「埋め込みフォーム」戦略に従うことを「選択」しました。
エンティティが作成されたと言ったので、フォームを作成する必要がありますcategory(の属性formBuilderのみを追加するとします)。
その後、以前のフォームを UserType クラスに追加する必要があり、「ある種の魔法」を使用すると、フォームは (適切な操作の後) 魔法としてレンダリングされ、魔法のようにレンダリングされます。など)すべての情報がデータベースに永続化されますidcategoryformBuilder
データ トランスフォーマー
は、フォームの入力をオブジェクトに、またはその逆に変換します。
そのようにして、私は定義する必要があります-たとえば-CategorySelectorType彼のビルダーに、それらの変換を行うクラス (サービス?) を追加します。次に、 (彼のメソッドなどを使用して)
を実装するデータ トランスフォーマー自体を定義します。次のステップでは、そのエンティティをサービスに登録し、このサービスを使用するフォームに
追加します。DataTransofmerInterfaceUserType
したがって、これら2つの方法論の「強い」違いはわかりませんが、サービスの「再利用性」はわかりません。誰かが私に別の視点を提供し、違いを説明してくれませんか?