Подводные камни PDO

korchasa

LIMB infected
Подводные камни PDO

Сижу вот и думаю стоит ли реализовывать PDO-адаптер для limb'а. Собственно не использовали мы его ранее из-за:
- сырости
- неумения делать запросы вида "SHOW TABLES FROM...", "SHOW COLUMNS FROM...", etc

Сейчас вроде бы "всего" 28 открытых ошибок. Интересует второй пункт. Какие еще подводные камни с ограничениями есть у PDO?

-~{}~ 01.04.10 00:11:

SHOW TABLES он, оказывается умеет, но проблему это решает не полностью, т.к. драйверо-независимого get_db_tables(), get_table_colums() и get_table_indexes() у него нет.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
ну дык он же не для того создан, чтобы мы забыли о том, с какой базой работаем, это просто единый интерфейс со стороны PHP,
а особенности СУБД всегда останутся

IMHO, никаких get_table_colums быть не должно - эти вещи определены стандартом ANSI
"у людей" (напр, на postgres) все делается через information_schema, а не странными запросами на выдуманном языке
 

zerkms

TDD infected
Команда форума
SHOW TABLES он, оказывается умеет, но проблему это решает не полностью, т.к. драйверо-независимого get_db_tables(), get_table_colums() и get_table_indexes() у него нет.
у него и LIMIT'а независимого нет.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
а что, LIMIT не передается в базу как часть текста запроса?
 

zerkms

TDD infected
Команда форума
grigori
я провел аналогию с
SHOW TABLES он, оказывается умеет, но проблему это решает не полностью, т.к. драйверо-независимого
когда для работы с субд используется специфичное расширение диалекта.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
а, да, у mysql же свой синтаксис limit-а был
ну, я о том же :)
 

crocodile2u

http://vbolshov.org.ru
zerkms
"Независимый" LIMIT - это как минимум чревато излишней сложностью, когда речь идет о поддержке СУБД, в которых этого самого LIMIT в помине нет. Да и вообще, PDO - это инструмент для того, чтобы отправлять запросы, а не для того, чтобы их строить.
 

zerkms

TDD infected
Команда форума
crocodile2u
я об этом и говорю с самого начала :)
 

korchasa

LIMB infected
grigori, crocodile2u
Согласен. Давно его не смотрел, поэтому был не в курсе возможностей.

Просто хотелось обойтись совсем без адаптеров под конкретные СУБД. Если мы можем реализовать это в РНР, то почему бы не сделать это в расширении.
 

HraKK

Мудак
Команда форума
Кстати, да. Почему бы не портнуть доктрине или пропел на си и не вывести это в экстеншен?
 

AmdY

Пью пиво
Команда форума
HraKK
ровно год назад доктриновцы обещали это сделать, жаль что первоапрель празднуется не только у нас :(
 

Krishna

Продался Java
Кстати, да. Почему бы не портнуть доктрине или пропел на си и не вывести это в экстеншен?
А стоит ли овчинка выделки? Почему бы просто не пользовать Доктрину и не париться? :)
 

HraKK

Мудак
Команда форума
не совсем нравиться скорость подъема доктрины.
 

korchasa

LIMB infected
Автор оригинала: Krishna
А стоит ли овчинка выделки? Почему бы просто не пользовать Доктрину и не париться? :)
Хм, давно не смотрел:
- объекты-критерии она уже умеет?
- жадные операции, например, для один-ко-многим двумя запросами или одним с джоином
- нормально отдавать ошибки валидации
- пользовательские валидаторы
- ленивые поля, загружаемые только по требованию, а не всегда
- ленивые запросы, выполняемые только если кто-то требует данные
- ValueObject'ы
- пользовательские коллекции
 

Beavis

Banned
korchasa
вот пользовательские коллекции появились в 1.2 версии
 

Krishna

Продался Java
korchasa

Я тоже давно не смотрел, так что не ко мне. Собственно, работать полноценно довелось только с бетой и 1.0 и при этом это была моя первая ORM, так что я не гуру в вопросе.

Мне вот в эти выходные оперативно осваивать Hibernate предстоит, так что на изучение последних релизов Доктрины времени никак )))

Но почему бы тебе самому не посмотреть ответы на свои вопросы? Там ведь такой хороший сайт и мануал.
 
Сверху