Учитывая, что ваш класс "User" является классом Model, я думаю, что все будет в порядке ...
Но, тем не менее, вы можете пойти немного дальше, добавив новый слой, и использовать:
- класс Model (
User
) для хранения пользовательских данных , видимых приложением , и соответствующих бизнес / логических правил
- класс, который имеет дело с хранилищем этих данных (что-то вроде UserFinder, я полагаю)
- конечно, что бы «знать» класс User и заполнить его данными из БД
- и вставка / обновление / удаление «пользовательских» объектов в / из БД
Таким образом, ваш класс User не должен знать, как он хранится: это может быть БД, а XML-файл, плоский файл, в любом случае, ваш класс User будет таким же.
Чтобы упростить задачу, вы можете использовать ORM Framework; один действительно хороший в PHP это Doctrine .