におけるビジネスロジックのフィット感は、私はデータベースにユーザを保存できるようにすることを考えてみましょうか、私の追加アクションは以下の通りです:ZendのFramewok 2、教義2、どこ
public function addAction()
{
$form = new UserForm();
$form->get('submit')->setValue('Add');
$request = $this->getRequest();
if ($request->isPost()) {
$userFilter = new UserFilter();
$form->setInputFilter($userFilter->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid())
$user = new User();
$user->setEmail($form->getInputFilter()->getValue('email') );
$user->setNome($form->getInputFilter()->getValue('name'));
$em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$em->persist($user);
$em->flush();
return $this->redirect()->toRoute('user');
}
}
return array('form' => $form);
}
保存することが非常に簡単ユーザーをデータベースに追加する必要がありますが、複雑なビジネスロジックを追加する必要がある場合は、電子メールがユニークであることを確認したいと思います。また、Webサービスにアクセスして、生活、宇宙、すべてが本当に42です。本当であれば、ユーザーにメッセージを表示したくない場合は、データベースにユーザーを保存します。
アクションを追加することはできますが、これは非常に良い方法ではないと言われています。このビジネスロジックをエンティティユーザーに入れることができますが、これはエンティティとzf2との間の結合を追加します。悪いWebでソリューションを検索すると、サービスロジックにビジネスロジックが置かれているようです。
Service Layerソリューションを嫌うと、クラスUserBusinessLogicを作成し、ビジネスロジックを実行し、すべてが正常であればユーザーを保存するメソッドsaveを作成します。
これは正しいですか?このテーマに関する文書はありますか?おそらく、doctrine 2とzf2とサービスを使用してビジネスロジックを処理する方法を示すコード例です。
私は、zf2とdoctrine 2を使用する際のビジネスロジックをどこに置くのがベストプラクティスですか?
サービスソリューションが最適な方法だとします。エンティティのユーザ、グループ、およびそれらの2つの関係がある場合、私は "アクセス"と呼ばれるサービスを作成し、このサービスはコントローラからデータを受信してグループを保存し、それらをリンクし、メールを送信してユーザーのパスワードをリセットします。これは正しいと思いますか?
はすばらしいと思われますが、何かを表示するためにはるかに多くの作業が必要です。 zf2スケルトンアプリケーションの場合、この状況のいくつかの例が良いでしょう – uacaman