在过去的几天里,我一直在阅读关于 DDD 的很多内容,但找不到一个可靠的例子来说明某人如何在他们的网站上简单地注册用户,所以经过大量阅读后,我把它放在一起,我希望得到你的反馈因为我确信它远非完美,它甚至可能是完全错误的,但它是这样的:
注册控制器
$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'
谢谢。