2012-05-02 9 views
2

私はいくつかのDataMapperパターンについて多くのことを読んでいます。Symfony2:DataMapper

DataMapperは、私がフォームモデルオブジェクトをエンティティオブジェクトにマッピングすることを理解していなければなりません。だから、アダプターのいくつかの並べ替えとして使用されています。

私はこれを正しく理解しましたか?

答えて

4

いいえ、Data Mapperは、オブジェクトをデータベースにマッピングすることに関するもので、フォームとは何の関係もありません。

データマッパーパターンの主な利点は、オブジェクトモデルとデータベーススキーマの両方を個別に展開することができることです。対照的に、Active Recordでは、それらの1つを曲げなければなりません - 通常、オブジェクトモデルを喜ばせるために、良いデータベース設計が犠牲になります。

Doctrine 1.xはActive RecordとData Mapperの間に何かを実装したものです。 Doctrine 2.xは純粋なデータマッパーの実装です。

+0

こんにちは、詳細な回答ありがとうございます!しかし、DoctrineのDataMapperはまだ良いデータベース設計を曲げていませんか?私はNF3にNF3にDBを保持して、Doctrineで作業することは可能ですが、良いものには広い距離を持っています。 – bodokaiser

+1

曲げについて話すとき、私は良い意味ではありませんでした。私が意味していたことは、Doctrine 1.xでは、あなたのデータベースをDoctrineに適応させなければならないことがありました。それを非正規化するか、別の方法で混乱させることです。 –

1

DataMapperについてはelnurですが、フォームをオブジェクトにマッピングする方法について知りたい場合は、symfonyが呼び出すものをDataTransformerとして使用できます。

+2

Symfony2には実際にDataMapperがあります。それは悲しそうに非公開です:http://joshuaestes.me/2015/01/25/symfony2_form_data_mapper/ –