Крот
Новичок
Вопрос по "объекту, его DataMapperу и связи с другими объектами"
Здравствуйте!
Возник небольшой вопрос по использованию связки "объект + его DataMapper".
Есть 3 таблицы...
Таблица: books
book_id
isdn
title
Таблица: authors
author_id
firstname
lastname
Таблица: authors2books
author_id
book_id
У таблиц books и authors есть соответствующие объекты, у которых определены методы set, get
Для каждого из этих объектов есть Mapper. В каждом из мапперов есть набор стандартный ф-ий а-ля find, load, add, save и т.д.
Если мне нужно получить список книг, то я использую $BooksMapper->find(....). В это случае на выходе я получаю массив объектов, где каждый объект это книга; и это очень удобно!
Теперь мне нужно получить не просто список книг, а список книг + список авторов (одним запросом). Я дополняю маппер ф-ией FindBooksWithInformationAboutAuthor(), которая лефт джойнит таблицы и отдаёт результат. Вот теперь самое интересное - как мне на выходе этой ф-ии получить не просто массив, а массив объектов. Ведь такие параметры, как firstname, lastname, author_id уже не входят в набор параметров класса Books.
Как быть? Забить и возвращать значения просто в виде массива? Но тогда как-то не очень красиво получается. Где-то я буду при отображении использовать $book->getTitle(), а где-то $book['title']. Так и самому запутаться недолго. Подскажите пожалуйста элегантное решение (без ORM - это для меня слишком сложно еще).
P.S. - пробовал смотреть в сторону ActiveRecord, но там этот вопрос по-прежнему остаётся открытым.
Здравствуйте!
Возник небольшой вопрос по использованию связки "объект + его DataMapper".
Есть 3 таблицы...
Таблица: books
book_id
isdn
title
Таблица: authors
author_id
firstname
lastname
Таблица: authors2books
author_id
book_id
У таблиц books и authors есть соответствующие объекты, у которых определены методы set, get
Для каждого из этих объектов есть Mapper. В каждом из мапперов есть набор стандартный ф-ий а-ля find, load, add, save и т.д.
Если мне нужно получить список книг, то я использую $BooksMapper->find(....). В это случае на выходе я получаю массив объектов, где каждый объект это книга; и это очень удобно!
Теперь мне нужно получить не просто список книг, а список книг + список авторов (одним запросом). Я дополняю маппер ф-ией FindBooksWithInformationAboutAuthor(), которая лефт джойнит таблицы и отдаёт результат. Вот теперь самое интересное - как мне на выходе этой ф-ии получить не просто массив, а массив объектов. Ведь такие параметры, как firstname, lastname, author_id уже не входят в набор параметров класса Books.
Как быть? Забить и возвращать значения просто в виде массива? Но тогда как-то не очень красиво получается. Где-то я буду при отображении использовать $book->getTitle(), а где-то $book['title']. Так и самому запутаться недолго. Подскажите пожалуйста элегантное решение (без ORM - это для меня слишком сложно еще).
P.S. - пробовал смотреть в сторону ActiveRecord, но там этот вопрос по-прежнему остаётся открытым.

