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


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

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

 10
Author: Sujania, 2008-08-12

5 answers

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

 4
Author: GaryF, 2008-08-11 22:40:02

Класс::DBI - это ORM (Объектно-реляционный картограф) для perl. Поиск "PHP ORM" в Google дает некоторые хорошие результаты, в том числе Доктрин, с которыми мне повезло. Я бы начал с этого и проложил тебе путь наверх.

 1
Author: Jack M., 2008-08-28 17:56:45

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

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

Вы можете включить его поэтапно, для этого не требуется переходить на MVC, и для этого требуется очень мало настроек.

 1
Author: Alan Szlosek, 2008-09-09 18:50:55

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

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

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

  • /ado

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

 0
Author: ggasp, 2008-08-11 23:34:10

Как насчет MDB2 из pear?

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

Кстати: @Garyf что это за странные атрибуты заголовка у ваших ссылок? Вы их добавили или они добавлены ТАКИМ образом?

 0
Author: Pat, 2008-08-12 21:47:16