За последние 24 часа нас посетил 18101 программист и 1655 роботов. Сейчас ищут 1384 программиста ...

Как вы пишите модели?

Тема в разделе "Прочие вопросы по PHP", создана пользователем vladqa, 28 ноя 2012.

  1. vladqa

    vladqa Активный пользователь

    С нами с:
    13 янв 2011
    Сообщения:
    27
    Симпатии:
    0
    Здравствуйте!

    Вопрос касательно архитектуры.
    Полностью объектный подход я начал применять не так давно. Сейчас же решил приобщиться и вкусить все прелести, попутно изучая yii. Но речь не о нем.

    Каким образом реализовывается инстанцирование модели?
    Насколько я понимаю, модель - это какой-то объект данных. То есть, формально, есть модель User, экземпляр которой - один пользователь.
    И где-то в приложении:
    Код (Text):
    1.  
    2. $User = User::getById($id); // Получили экземпляр
    3. $User->setName("Vasya"); // Сменили имя на Vasya
    4. $User->save(); // Сохранили юзера, обновив запись в БД.
    Правильно ли я понимаю принципы работы с моделью? Если да, то каким образом реализовывать метод getById?
    Вроде как хочется сделать какую-то фабрику для этого, чтобы было: $User = UserFactory::getById($id); // Вернет user;
    Где в UserFactory такой код:
    Код (Text):
    1.  
    2. Class UserFactory {
    3. public static getById($id) {
    4.    // Какой-то запрос в БД чтоб вытащить юзера
    5.    ///////////
    6.  
    7.    // Потом
    8.    $User = new User();
    9.    $User->name = $dbresult->name;
    10.    // ....
    11.  
    12.    return $User;
    13. }
    Это корректный подход?
    Но как быть, если надо получить массив пользователей? Или если внутри объекта User будет еще один объект ? Как такое инстанцировать?