Model Layer in Symfony(PHP Framework)



project_dir/lib/model/にXXX.phpとXXXPeer.phpの2種類のModel Classが作成され、さらにproject_dir/lib/model/om/にBaseXXX.phpとBaseXXXPeer.phpの2種類のBase Data Model Classが作成されますが、Askeet day 10を読んでいて、それぞれの意味がなんだったのかがわからなくなったので、Symfony BookのModel Layerの章を読み直しました。

要点をまとめておきます。
・project_dir/lib/model/om/以下のBase Data Model Classはschema.xmlを変更し、propel-build-modelコマンドの実行時にすべて再生成されるので、カスタマイズする場合はproject_dir/lib/model/以下のModel Classを変更する必要がある。もしBase Data Model Classが変更された場合でも、extendsによりクラスが継承されるので、schema.xmlの変更はそのまま継承される。

・PeerではないXXX.phpはDBのレコードに相当するObject Classで、レコードのカラムや関連レコードを取得することができる。一方、XXXPeer.phpはPeer Classであり、DBテーブルを操作するためのstaticメソッドを含むクラスで、テーブルからレコードを取得する方法を提供し、オブジェクトあるいはオブジェクトの集合をreturn valueとして返す。

Leave a Reply