Pull to refresh

Comments 25

Странное голосование. Класс по определению должен представлять собой второе, причем первое — тоже по сути второе :)
Если (1), то в коде вряд ли появятся классы например, ServerRequest, FileResizer, Form и т.п. очень часто приходиться видеть код, глядя на который кажется, что программист руководствуется простым правилом: если нельзя «положить в базу» — класс создавать незачем. Очень хрчется разобраться в этой теме.
Автор, вы вчера прочитали первую главу книги про ооп?
Не нужно путать orm и oop.
нет, я не вчера прочитал первую главу. посмотрите на первый коментарий.

специально для Вас, более «профессиональный» вопрос:

Характерно ли для Вашего кода такое:

class User extends DbRow {…
Проавильно ли я понял?:
Пункт а — запись БД, расширенную дополнительными функциями — Используете ли вы ORM?
Пункт б — абстрактное представление сущности (модели), с хранимыми в БД данными — Используете ли вы абстрактные классы для работы с базой данных.

>Характерно ли для Вашего кода такое:
>class User extends DbRow {…

Нет. Для моего кода характерно такое:

class user extends base_object
{

function storage_engine() { return 'storage_db_mysql'; }
}

ORM — это лишь один из внутренних механизмов объекта. И логика объекта никак не должна быть на него повязана.
Я же вам сказал, если вы пользуете концепцию ORM и user в данном случае модель
— то да, характерно, хотя и зависит от конкретной реализации.
а теперь представьте себе, что user вообще может не работать с базой,
зачем тогда ему dbrow?..

Вы топик некорректно назвали.
Нужо было что-то вроде этого:
PHP: Что представляют из себя модели в Вашем ORM-приложении?
Я понял, что Вам не понравилось название. Тем не менее, большенство людей понимают, что я спрашиваю, отвечают на вопрос и я получаю нужную мне информацию.

Да, вопрос заключается именно в этом: «Что представляют из себя модели в Вашем ORM-приложении?»

Моё мнение — что реализация «class User extends DbRow {» ущербнее «class User {». В любом случае.

Хочу «прощупать почву» и поделиться мыслями об этом в следующем топике.
Просто посмотрите как это реализовано в популярных фреймворках.
моя цель — не узнать, как это реализовано в популярных фреймворках. моя цель — узнать, как это реализовано у программистов на хабре.
опрос ни о чем.
я вообще in general не вижу связи между классом, объектом и бд.
Например в моем коде, класс — это элемент сущности (Пользователь, Статья) для определенного слоя (контролер, модель). А где хранить данные — вообще без разницы (модель решает). но больше подходит под описание пункта 2.
Что-то среднее. Юзаю Yii, там есть базовый класс CModel с наследниками CActiveRecord и CFormModel. Естественно можно реализовать свой тип модели. А вообще, граница между 1 и 2 пунктом бывает очень размыта.
а почему обязательно привязка модели к БД?
ну так бывает в большенстве случаев… или нет?
думаю что нет. Помнится, еще великий гуру всех паттернистов М. Фаулер, если мне не изменяет память, обижался на неправильные ассоциации модели и базы данных
А что выбирать, если классы не связаны с бд?
второй вариант. вообще опрос немного некорректный, я уже сам разобрался (прямо как в анекдоте). Я хотел спросить — используете ли Business Objects или Technology-based objects. Тоесть оттталкиваетесь от домена(отрасли), для которого приложение разрабатывается, или от технологии, которая применяется.
Гыгы, а у меня модель данных есть, а бд нету. Чо делать?
Сущности не обязятельно должны опираться на модель данных / БД.
Вы наверное плохо представляете что такое сущность.
об этом и опрос. на что опирабтся сужности обычно в вашем приложении?
помимо моделей данных (само собой) сущностями может являтся, например, тот же класс HtmlForm, File, TcpClient и другие. Ибо в моём понимании форма, файл, или соедниение tcp — это сущности.
Я лишь хотел сказать, что приложение должно представлять из себя совокупность сущностей, не обязательно хранимых/представляемых в БД.
замечательно! полностью с вам согласен. думаю вам будет интересен мой следующий топик. ждите :)
не хочу придираться к топику, но:
насколько я знаю:
Класс — это описание объекта
Объекст — это экземпляр класса

поэтому отвечу
Классы — храню в файлах ))
Объекты — в ОЗУ, иногда в БД а иногда в файлах ))

чем это поможет топикстартеру — непонимаю)
Sign up to leave a comment.

Articles