Gibt es eine gute objektrelationale Mapping-Bibliothek für PHP?
Ich kenne PDO / ADO, aber sie scheinen nur eine Abstraktion der Unterschiede zwischen Datenbankanbietern zu bieten, keine tatsächliche Zuordnung zwischen dem Domänenmodell und dem relationalen Modell. Ich suche nach einer PHP-Bibliothek, die ähnlich funktioniert wie Hibernate für Java und NHibernate für .NET.
Es gibt nur zwei gute: Lehre und Antrieb . Wir bevorzugen Doctrine und es funktioniert gut mit Symfony . Wenn Sie jedoch neben den wichtigsten auch Datenbankunterstützung suchen, müssen Sie Ihren eigenen Code schreiben.
quelle
Axon ORM ist Teil des Fat-Free Framework - es verfügt über einen On-the-Fly-Mapper. Keine Codegeneratoren. Keine dummen XML / YAML- Konfigurationsdateien. Das Datenbankschema wird direkt aus dem Backend gelesen, sodass Sie bei den meisten CRUD- Vorgängen nicht einmal ein Basismodell erweitern müssen. Es funktioniert mit allen gängigen PDO- unterstützten Datenbankmodulen: MySQL , SQLite , SQL Server / Sybase, Oracle, PostgreSQL usw.
Vor allem das Plug-In und die zugehörige SQL-Datenzugriffsschicht sind genauso leicht wie das Framework: 14 KB (Axon) + 6 KB (SQLdb). Fettfrei ist nur 55 KB.
quelle
$product->load('product_id=123')
in einem Beispiel sehe .$product->load(array('product_id=:id',array(':id'=>123)));
Ich habe Pork.dbObject selbst entwickelt. (Eine einfache Implementierung von PHP ORM und Active Record) Der Hauptgrund ist, dass ich die meisten ORMs zu schwer finde.
Der Hauptgedanke von Pork.dbObejct ist, leicht und einfach einzurichten zu sein. Keine Reihe von XML-Dateien, nur ein Funktionsaufruf im Konstruktor zum Binden und eine addRelation oder addCustomRelation zum Definieren einer Beziehung zu einem anderen dbObject.
Probieren Sie es aus: Pork.dbObject
quelle
Versuchen Sie Doctrine2 . Es ist wahrscheinlich das leistungsstärkste ORM-Tool für PHP. Ich erwähne es getrennt von Lehre 1, weil es eine völlig andere Software ist. Es wurde von Grund auf neu geschrieben, befindet sich noch in der Beta-Phase, ist aber jetzt verwendbar und entwickelt.
Es ist ein sehr komplexes ORM, aber gut gestaltet. Viel Magie aus der ursprünglichen Lehre 1 verschwand. Es bietet eine vollständige Lösung, und Sie können Ihr eigenes ORM auf Doctrine2 schreiben oder nur eine seiner Ebenen verwenden .
quelle
Ich habe gerade mit Kohana angefangen und es scheint Ruby on Rails am nächsten zu sein, ohne die Komplexität mehrerer Konfigurationsdateien wie bei Propel aufzurufen .
quelle
Schauen Sie sich Outlet ORM an . Es ist einfacher als Propel und Doctrine und funktioniert ähnlich wie Hibernate, nur mit einem eher PHP-Feeling.
quelle
Ich mag Propel sehr , hier können Sie sich einen Überblick verschaffen, die Dokumentation ist ziemlich gut und Sie können sie über PEAR oder SVN erhalten.
Sie benötigen nur eine funktionierende PHP5-Installation und Phing , um Klassen zu generieren.
quelle
Ich habe ORM-bezogene Klassen in der PHP-Bibliothek Flourish gefunden .
quelle
Sie sollten Idiorm und Paris überprüfen .
quelle
Geben Sie einen Schuss DORM, ein Objekt Relational - Mapper für PHP 5 . Es unterstützt alle Arten von Beziehungen (1-zu-1), (1-zu-viele), (viele-zu-viele) und Datentypen. Es ist völlig unauffällig: Keine Codegenerierung oder Klassenerweiterung erforderlich. Meiner Meinung nach ist es jedem ORM überlegen, einschließlich Doctrine und Propel. Es befindet sich jedoch noch in der Beta-Phase und könnte sich in den nächsten Monaten erheblich ändern. http://www.getdorm.com
Es hat auch eine sehr kleine Lernkurve. Die drei Hauptmethoden, die Sie verwenden werden, sind:
quelle
Ich arbeite derzeit an phpDataMapper , einem ORM mit einfacher Syntax wie Rubys Datamapper-Projekt. Es ist noch in der frühen Entwicklung, aber es funktioniert großartig.
quelle
Ich habe großartige Erfahrungen mit Idiorm und Paris gemacht . Idiorm ist eine kleine, einfache ORM-Bibliothek. Paris ist eine ebenso einfache Active Record-Implementierung, die auf Idiorm basiert. Es ist für PHP 5.2+ mit PDO. Es ist perfekt, wenn Sie etwas Einfaches möchten, das Sie einfach in eine vorhandene Anwendung einfügen können.
quelle
Versuchte die ORM of Flourish Bibliothek .
quelle
Erwarten Sie bis zur Veröffentlichung von PHP 5.3 kein gutes ORM. Es ist eine OO-Einschränkung von PHP.
quelle
Mein Freund Kien und ich haben eine frühere Version eines ORM verbessert, die er vor PHP 5.3 geschrieben hatte. Wir haben Ruby on Rails ' Active Record im Wesentlichen auf PHP portiert . Es fehlen noch einige wichtige Funktionen wie Transaktionen, Unterstützung für zusammengesetzte Primärschlüssel und einige weitere Adapter (derzeit funktionieren nur MySQL und SQLite 3). Aber wir sind sehr nahe daran, dieses Zeug fertig zu stellen. Sie können sich PHP ActiveRecord mit PHP 5.3 ansehen .
quelle
Versuchen Sie PHP ADOdb.
Ich kann nicht sagen, dass es das Beste ist, weil ich die anderen nicht benutzt habe. Aber es ist schnell, es unterstützt Memcached und Caching.
Und es ist schneller als DB / Select von Zend Framework .
quelle
Schauen Sie sich das LEAP ORM für Kohana an . Es funktioniert mit einer Reihe von Datenbanken, darunter DB2 , Drizzle , Firebird , MariaDB , SQL Server, MySQL , Oracle, PostgreSQL und SQLite . Mit einer einfachen Autoload-Funktion kann es mit fast jedem PHP-Framework arbeiten. Der Quellcode befindet sich auf GitHub unter https://github.com/spadefoot/kohana-orm-leap . Sie können die LEAP-Tutorials online lesen .
Die ORM-Bibliothek arbeitet mit nicht ganzzahligen Primärschlüsseln und zusammengesetzten Schlüsseln. Verbindungen werden über einen Datenbankverbindungspool verwaltet und funktionieren mit unformatierten SQL-Abfragen. Das ORM verfügt sogar über einen Abfrage-Generator, der das Erstellen von SQL-Anweisungen sehr einfach macht.
quelle
Sie können sich Ruhe ansehen, wenn Sie sich abenteuerlustig fühlen. Wie Outlet ist es dem Ruhezustand nachempfunden .
Es ist noch sehr früh in seiner Entwicklung, aber bisher bestehen die einzigen Einschränkungen für das Domänenmodell darin, dass die Klassen nicht als endgültig und die Eigenschaften nicht als privat markiert sind. Sobald ich in das Land von PHP> = 5.3 komme, werde ich versuchen, auch die Unterstützung für private Immobilien zu implementieren.
quelle
Wenn Sie nach einem ORM suchen, der das Data Mapper-Paradigma anstelle von Active Record spezifisch implementiert, würde ich Ihnen dringend empfehlen, sich GacelaPHP anzuschauen .
Gacela Eigenschaften:
Andere ORM-Lösungen sind zu aufgebläht oder haben lästige Einschränkungen, wenn sie etwas entfernt Kompliziertes entwickeln. Gacela behebt die Einschränkungen des Ansatzes für aktive Datensätze, indem das Data Mapper-Muster implementiert wird, während das Aufblähen auf ein Minimum reduziert wird, indem PDO für alle Interaktionen mit der Datenbank und Memcached verwendet wird.
quelle
MicroMVC verfügt über ein 13-KB- ORM , das nur auf einer 8-KB- Datenbankklasse basiert . Es gibt auch alle Ergebnisse als ORM-Objekte selbst zurück und verwendet eine späte statische Bindung, um zu vermeiden, dass Informationen über die Tabelle und die Metadaten des aktuellen Objekts in jedes Objekt eingebettet werden. Dies führt zu dem günstigsten ORM-Overhead, den es gibt.
Es funktioniert mit MySQL , PostgreSQL und SQLite .
quelle
Brasilianisches ORM: http://www.hufersil.com.br/lumine . Es funktioniert mit PHP 5.2+. Meiner Meinung nach ist es die beste Wahl für Portugiesen und Brasilianer, da es leicht verständliche Dokumentationen und viele Beispiele zum Herunterladen enthält.
quelle
Agile Toolkit verfügt über eine eigene einzigartige Implementierung von ORM / ActiveRecord und dynamischem SQL .
Einführung: http://agiletoolkit.org/intro/1
Syntax (aktiver Datensatz):
Syntax (Dynamic SQL):
Während Dynamic SQL und Active Record / ORM direkt verwendet werden können, integriert Agile Toolkit sie weiter in die Benutzeroberfläche und die jQuery-Benutzeroberfläche . Dies ähnelt JSF, ist jedoch in reinem PHP geschrieben.
Dadurch wird AJAXified CRUD mit für das Mitarbeitermodell angezeigt .
quelle
NotORM
quelle
PHP ORM Faces Für PDO-Erweiterung. Siehe PHP Faces Framework .
quelle
Schauen Sie sich http://code.google.com/p/lworm/ an . Es ist ein wirklich einfaches, aber leistungsstarkes, leichtes ORM-System für PHP. Sie können es auch einfach erweitern, wenn Sie möchten.
quelle
Ein weiteres großartiges Open Source PHP ORM, das wir verwenden, ist PHPSmartDb . Es ist stabil und macht Ihren Code sicherer und sauberer. Die Datenbankfunktionalität ist zweifellos die einfachste, die ich je mit PHP 5.3 verwendet habe.
quelle
Lehre ist wahrscheinlich die beste Wahl. Vor Doctrine war DB_DataObject im Wesentlichen das einzige andere Dienstprogramm, das Open Source war.
quelle
Wenn Sie nach einem ORM wie Hibernate suchen, sollten Sie sich PMO ansehen .
Es kann einfach in eine SOA- Architektur integriert werden (es muss nur eine Webservice-Klasse entwickelt werden).
quelle