私は過去数日間DDDをよく読んでいて、誰かが自分のサイトにユーザーを登録する方法の確かな例を見つけることができなかったので、たくさん読んだ後、私はこれをまとめました。フィードバックをお願いします。それは完璧にはほど遠いと確信しているので、それは完全に間違っているかもしれませんが、ここにそれがあります:
RegisterController
$userMapper = $this->dataMapperFactory->build('user');
if($userMapper->fetchByUsername($username) !== NULL) {
// Error: The chosen username already exists
}
else {
if($userMapper->fetchByEmail($email) !== NULL) {
// Error: The email address already exists
}
else {
$userDO = $this->domainObjectFactory->build('user');
// Set the properties of the $userDO object here with the ones
// from the registration form
// Insert the new user into the database
$userMapper->save($userDO);
}
}
私は自分のFormValidation
クラスですべてのフォーム検証を行ったので、プロパティを$ userDOオブジェクトに追加すると、すべて100%データベースに挿入する準備ができています(正しい長さ、タイプ、形式、範囲など)。コードはどのようになりますかあなたに見えますか?
私は正しい方向に進んでいると思います。コードを改善するためのヒントをいただければ幸いです。
また、彼らが選択したユーザー名がすでに使用されているかどうかを確認する方法はありますか?それを行うためのより良い方法はありますか?チェックするたびにオブジェクトを作成する代わりに?私が簡単にそれを行っていた古い方法のように:
SELECt COUNT(*) FROM users WHERE username = 'john'
ありがとう。