Как правило, если вещи относятся к конкретному экземпляру пользователя, то есть ко мне или вам, они принадлежат к классу пользователя. Если они относятся к группе пользователей или у нас еще нет пользователя (т. Е. Они загружаются из базы данных), то они принадлежат к классу Table.
Я бы сделал ваш пример так:
class UserTable {
function register($username, $password, $email) {
$user = new User;
$user->username = $username;
$user->password = $password;
$user->email = $email;
$user->save():
}
}
Люди будут спорить о том, где принадлежат некоторые вещи, и экономия - одна из них! Я знаю, что Propel, который является еще одним аналогом PHP ORM, включает метод save в свой эквивалент таблицы, а также в эквивалент объекта, и ваша регистрация выглядит аналогично этому. Так что уверен, что кто-то скоро будет спорить с другой стороной!
Чтобы ответить на другие вопросы, на мой взгляд:
Смена пароля принадлежит Пользователю, определенно - вы изменяете пароль пользователя, просто меняете поле.
Вход в систему должен выполняться в классе таблицы - это специальный случай получения.