Прочитал много различной инфы про MVC применительно к вебу. Но осталось непонятным.
Например, сайт работает с пользователями. Получается нужны методы получения списка всех пользователей, добавления нового, удаления. Вырисовывается модель UserList.
С другой стороны, если мы ищем конкретного пользователя по ID для отображения профиля. Вызываем метод модели UserList - getUserById. И, на мой взгляд, логичным было бы вернуть объект класса User, чтобы сразу получить доступ и к имени, и к паролю и тд. То есть еще одна модель User? Или пусть контроллер разбирает ответ БД, чтобы вытащить данные пользователя?
Конечно, с абстрактной точки зрения, сие не правильно.
Есть у меня объект User, символизирующий юзера #5.
$user->getById(7), получается - эй, #5, дай-ка мне юзера #7.
Если оперируете пользователями атомарно - User, если же выполняете операции сразу над группой пользователей, и эта группа является одним целым - тогда можно подумать о UserList. Скорее всего у вас просто User, поиск к групповой операции не относится, список полученных пользователем одним целым не назовешь.
С абстрактной точки зрения правильнее, конечно, для каждой модели разделять понятия Item (отдельная сущность) и Container (совокупность этих сущностей, предназначенная для получения отдельных элементов).
Впрочем многие ORM мешают оба этих понятия в один класс.