this questionのフォローアップは、 - 私はプロジェクトのオブジェクトがあるとし、これによりデータベースを知ることからProjectオブジェクトを保持し、挿入/更新/削除処理するためにProjectMapperオブジェクトを使用しています。データマッパーに多少の関連機能が含まれています - より良い場所がありますか?
プロジェクトにはいくつかのフォームが関連付けられている可能性があるので、ページをロードするときにProject populationを処理した後、プロジェクトに関連付けられたformIDのリストをデータベースからフェッチしてループさせる必要がありますFormオブジェクトを作成し、FormMapperオブジェクトを使用してフォームオブジェクトを生成します。
これは単純な十分な機能ですが、私はそれを置くべき場所はかなりよく分かりません。データベースと話しているので、ProjectオブジェクトやFormオブジェクトには入りません。それはProjectMapperオブジェクトに行くように思えるが、取得されたデータは、プロジェクトにマップするつもりはない - フォームにマッピングデータに使用することになるだろう。
上記のコードベースの表現:
$project = new Entity\Project;
$projectMapper = new Mapper\Project($db);
$project->setId(43);
$projectMapper->load($project); //load() will take ID of passed object, fetch data from DB and call setter.
$formIDs = XXXX->getFormIDs($project); //Which object should replace the XXXX?
$formMapper = new Mapper\Form($db);
foreach ($formIDs as $num=>$id) {
$form = new Entity\Form($id)
$formMapper->load($form);
}
私はそれをoverthinkingてるようそれはほとんど感じているが、私はちょうどPPRMapperでgetFormIDsを()入れに行くたび「違和感」のやっかいな感覚があります。私はこの方法をどこに置くかは本当に問題なのですか?明らかに論争の的になる性質にもかかわらず、このようなことを処理する別のヘルパークラスを作成する必要がありますか?