Класс:: DBI-подобная библиотека для php?

Я унаследовал старый crusty PHP application, и я бы хотел реорганизовать его во что-то более приятное, чтобы иметь дело с ним, но постепенно. В perl CPAN существует ряд классов вокруг класса:: DBI, которые позволяют использовать строки базы данных в качестве основы для объектов в вашем коде, с библиотекой, генерирующей accessor methods и т.д., Если это необходимо, но также позволяет добавлять дополнительные методы.

Кто-нибудь знает что-то подобное для PHP? Особенно что-то, что не требует оптового принятия "рамки"... бонусных очков, если оно работает и на PHP4, но, честно говоря, я бы хотел иметь еще одну причину.: -)

Ответ 1

Теперь он не функционирует, но phpdbi, возможно, стоит посмотреть. Если вы готовы отпустить некоторые из своих предостережений (рамки), я обнаружил, что Doctrine - довольно аккуратный способ доступа к БД в PHP. Стоит исследовать в любом случае.

Ответ 2

Класс:: DBI - это ORM (Object Relational Mapper) для perl. Поиск "PHP ORM" в google дает хорошие результаты, в том числе Doctrin, с которым мне повезло. Я бы начал там и проработал.

Ответ 3

Я пытаюсь получить больше отзывов о своих проектах, поэтому я предлагаю взять ORM: ORMer

Примеры использования здесь

Вы можете выполнить его фазу, не требуя, чтобы вы приняли MVC, и это требует очень небольшой настройки.

Ответ 4

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

Для этого, чтобы освободить ваше приложение от знания, как обращаться с базой данных, ваш уровень абстракции для доступа к БД должен быть реализован с помощью фреймворка, такого как ADODB.

Все файлы, относящиеся к этому слою, должны находиться в подкаталоге:

  • /лукаво

В этих каталогах вы поместите все ваши файлы .php.inc, которые содержат общие методы для доступа к базе данных.

Ответ 5

Как насчет MDB2 от груши?

Он предоставляет общий API для всех поддерживаемых РСУБД. Основное различие к большинству других пакетов абстракции БД заключается в том, что MDB2 идет намного дальше обеспечить переносимость.

Btw: @GaryF каковы эти странные атрибуты заголовка, которые имеют ваши ссылки? Вы добавили их или добавили SO?