2008-08-11 5 views
10

Ich habe eine alte crusty PHP application geerbt, und ich möchte es in etwas ein wenig schöner umwandeln, aber in einer allmählichen Weise. In Perls CPAN gibt es eine Reihe von Klassen um Class :: DBI, die es Ihnen ermöglichen, Datenbankzeilen als Basis für Objekte in Ihrem Code zu verwenden, wobei die Bibliothek accessor methods usw. erzeugt, aber auch Ihnen erlaubt, zusätzliche Methoden hinzuzufügen.Klasse :: DBI-ähnliche Bibliothek für PHP?

Kennt jemand von so etwas für PHP? Vor allem etwas, das keine großflächige Einführung eines "Frameworks" erfordert ... Bonuspunkte, wenn es auch in PHP4 funktioniert, aber um ehrlich zu sein, würde ich gerne einen anderen Grund haben, das zu verwerfen. :-)

Antwort

3

Es ist jetzt verstorben, aber phpdbi ist möglicherweise einen Blick wert. Wenn Sie bereit sind, einige Ihrer Vorbehalte (das Rahmenwerk) loszulassen, habe ich festgestellt, dass Doctrine eine ziemlich gute Möglichkeit ist, auf DBs in PHP zuzugreifen. Auf jeden Fall eine Untersuchung wert.

0

Es ist richtig, auf die Datenbank über eine Abstraktionsschicht zuzugreifen. Wenn Sie Ihr RDBMS ändern oder diesen Zugriff implementiert haben, müssen Sie nur diese Ebene ändern, während der Rest Ihrer Anwendung unberührt bleibt.

Dazu muss Ihre Abstraktionsschicht für den DB-Zugriff von einem Framework wie ADODB implementiert werden, damit Ihre Anwendung nicht wissen muss, wie mit der Datenbank verfahren werden soll.

Alle auf dieser Schicht bezogenen Dateien müssen in einem Unterverzeichnis befinden:

  • /
  • ado

In dieser Verzeichnisse Sie alle Ihre .php.inc Dateien setzen werden, welche enthält allgemeine Methoden für den Zugriff auf die Datenbank.

0

Wie wäre es mit MDB2 von Birne?

Es bietet eine gemeinsame API für alle unterstützten RDBMS. Der Hauptunterschied zu den meisten anderen DB-Abstraktionspaketen ist, dass MDB2 viel weiter geht, um Portabilität zu gewährleisten.

Btw: @GaryF Was sind diese seltsamen Titelattribute, die deine Links haben? Hast du sie hinzugefügt oder werden sie von SO hinzugefügt?

1

Klasse :: DBI ist ein ORM (Object Relational Mapper) für Perl. Suchen nach "PHP ORM" auf Google gibt einige gute Ergebnisse, einschließlich Doctrin, mit dem ich viel Glück hatte. Ich würde dort anfangen und dich hocharbeiten.

1

Ich versuche, mehr Feedback auf meine eigenen Projekte zu bekommen, so dass ich mein nehmen auf ORM vorschlagen: ORMer

Anwendungsbeispiele sind here

Sie können es in der Phase, es funktioniert nicht erfordern, dass Sie MVC übernehmen, und es erfordert sehr wenig Setup.