モデル/コントローラーにそのようなロジックを配置するのではなく、サービスクラスを使用してエンティティをデータベースに永続化する必要があることを学びました。私は現在、サービスクラスを次のようなものにしました
class Application_DAO_User {
protected $user;
public function __construct(User $user) {
$this->user = $user
}
public function edit($name, ...) {
$this->user->name = $name;
...
$this->em->flush();
}
}
これがサービスクラスの構造なのかしら?サービスオブジェクトはエンティティ/モデルを表しますか?または、次のような編集を行うたびにUserオブジェクトを渡す必要があります。
public static function edit($user, $name) {
$user->name = $name;
$this->em->flush();
}
Doctrine2とZendFrameworkを使用していますが、問題ありません。