![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Atlete |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Вот задался я таким вопросом,
в java для работы с базой есть интересный фреймворк hibernate и еще один ibatis (те с которыми я сталкивался). А вот теперь суть вопроса, если какой либо аналог для PHP чтобы работать с базой на уровне объектов или же необходимо самому написать свое решение? |
|||
|
||||
Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 6 Всего: 13 |
Есть. Doctrine, Propel, остальные есть здесь.
-------------------- |
|||
|
||||
Atlete |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Огромное спасибо, буду изучать
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
||||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Почитай по ссылке Sannis - чем.
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
и? Нужны низкоуровневые исходники?
|
|||
|
||||
Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 6 Всего: 13 |
Нужно объектное предствление таблиц, т.е. не ОО интерфейс к БД как таковой, а ORM обёртка, насколько я понимаю.
-------------------- |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А можно банальный тупой пример, как это выглядит...
|
|||
|
||||
Pokoinik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 17.3.2007 Где: /dev/null Репутация: 2 Всего: 3 |
Mal Hack,
http://www.phpdoctrine.org/documentation/m...l/0_11?one-page -------------------- ICQ: 490-993 Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!! Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают. Делай или не делай! Никаких попробую! Йода (Yoda), мастер-джедай |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Обычная ООП обертка, с большей абстракцией... Лишнее... ИМХО.
|
|||
|
||||
Pokoinik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 17.3.2007 Где: /dev/null Репутация: 2 Всего: 3 |
Mal Hack, согласен
Единственное приемущество - более красивый код (эстетическое наслаждение ![]() Из недостатков выяснилось: 1. Отвратительный перфоманс. Иногда нужно прочитать просто поле объекта, а ORM инициализирует все поля и зависимые сушности, хоторые нах. не нужны в данный момент 2. От ORM ожидаешь что кода будет меньше. Получается наоборот. 3. Усложняется отладка. Вместо понятного отточеного SQL exception получаешь stacktrace ошибок внутри движка ORM 4. Дополнительные уровни абстракции нужны, чтобы скрывать детали реализации, чтобы не приходилось вникать в то, что подложено снизу. На практике хватает дырок в абстракциях, из-за которых пока не разберёшь весь нижний уровень - не поймёшь что сверху происходит. 5. SQL заменитель (внутренний язак запросов) вместо реального SQL иногда сильно ограничивает возможности -------------------- ICQ: 490-993 Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!! Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают. Делай или не делай! Никаких попробую! Йода (Yoda), мастер-джедай |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Ну а чего вы хотите? Первая надстройка - переопределенный и расширенный класс PDO или MySQL, вторая - API самой библиотеки...
|
|||
|
||||
sTa1kEr |
|
||||||||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Это вообще не преимущество. Имхо, преимущества ORM заключаются в:
Да, это так. Но при грамотном подходе его можно компенсировать.
Если нужно только прочитать поле - то нужно просто прочитать поле. Зачем использовать ORM там где это не нужно? Для эстетики кода?
Если получаешь stacktrace ошибок движка, то может стоит использовать более удачную реализацию движка, с обработкой ошибок?
То же что и предыдущий пункт. |
||||||||
|
|||||||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Mal Hack, а как насчет автоматической генерации админки?
как насчет простого save() вместо написания запросов? как насчет отсутствия лишнего кода по преобразованию объекта в запрос для записи в базу и кода по преобразованию результатов запроса в объекты при выборке? |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
как ты себе это представляешь? Давай просто определимся с термнами чтоли, а то мне кажется мы несколько о разных вещах говорим. Против. Абстракция - хорошая вещь, но в меру. Для каждой задачи есть какой-то максимальный уроень абстракции, который нельзя превышать, иначе теряется управляемость скрипта.
Я могу и в массивы преобразовать, что будет куда более оптимальнее. Код-то не лишний, ты просто его не видишь =) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |