2012-05-10 8 views
18

Ich habe ein wenig Verwirrung über den Unterschied zwischen ORM und PDO?
Ist PDO eine Art von ORM?Unterschied zwischen Orm und PDO

ORM nach meinem Verständnis ist im Grunde eine Art von Datenzuordnung und PDO bietet auch eine Abstraktion für die Datenbankdaten.

Antwort

26

PDO und ORM sind zwei völlig verschiedene Dinge.

PDO ist eine spezielle Implementierung eines Datenbankzugriffs Abstraktionsschicht, ermöglicht es Ihnen, eine Verbindung herzustellen, SQL auszuführen und Ergebnisse aus der Datenbank mit einer API konsistent über verschiedene Datenbank Backends (zB MySQL, PostgreSQL, MS SQL, etc.) .)

Ein ORM dagegen ist etwas Spezialisierteres: Es ist ein Framework für die Zuordnung relationaler Tabellen zu Anwendungsdomänenobjekten und Beziehungen zwischen ihnen. Diese sind oft auf DALs wie PDO aufgebaut.

Um den Unterschied zu sehen, müssen Sie ein Objekt oder einen Datensatz abrufen. Mit PDO müssten Sie SQL schreiben, um die richtige Zeile in der rechten Tabelle auszuwählen, und Logik zum Extrahieren dieser Zeile haben und die Felder den Variablen eines PHP-Objekts zuordnen. Sie als Benutzer müssen sich um alles kümmern. Auf der anderen Seite, mit einem ORM, würden Sie einfach sagen: finden Sie das Objekt X durch diese ID, und das ORM würde seine Magie tun und Ihnen das Objekt geben, ohne dass Sie das SQL selbst schreiben müssen.

8

Nein, das sind verschiedene Dinge.

PDO ist eine Abstraktionsschicht für Verbindungen zu SQL-Datenbanken, so können Sie den gleichen Code verwenden, um mit MySQL zu arbeiten, PostgreSQL usw.

ORM ist das Konzept der Mapping-Datenbank Entitäten Objekte. Doctrine ist ein Beispiel für ein PHP-ORM-Framework, das verschiedene Verbindungsmöglichkeiten zu Datenbanken unterstützt, von denen eine PDO ist.

Verwandte Themen