DoctrineのModelクラスとTableクラスの違い


 shema.ymlに色々書いてsymfony doctrine:build –modelを実行すると色々なクラスが自動的に生成される。lib/model/doctrine以下には、各モデル毎に[ModelName].class.phpと[ModelName]Table.class.phpという2つのクラスが生成される。

その2つの使い分けは何となくやってたんだけど、最近明快な答が載ったページ(英語)を見つけたのですっきりした。

まぁソースコードを見ればすぐ分かるんだけど、継承関係としては以下の通り。

  • Doctrine_Record > sfDoctrineRecord > [ModelName]
  • Doctrine_Table > [ModelName]Table

てことで、[ModelName]Tableの方は、テーブルからデータを取ってきたりする処理を記載して、取ってきたレコードに対する処理は[ModelName]クラスの方に記載する。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です