269 votos

¿ORM PHP buena biblioteca?

¿Hay una buena biblioteca de mapeo objeto-relacional para PHP?

Sé de PDO/ADO, pero parece que sólo proporcionan abstracción de las diferencias entre los proveedores de base de datos no una asignación real entre el modelo de dominio y el modelo relacional. Estoy buscando a una librería PHP que hace las funciones de manera similar a como Hibernate para Java y NHibernate para. net.

113voto

Ian P Puntos 7930

Buscar en Doctrina.

Doctrina 1.2 implementa el Registro Activo. Doctrina 2+ es un DataMapper ORM.

Además, echa un vistazo Xyster. Se basa en los Datos del Asignador de patrón.

También, echar un vistazo a DataMapper vs Registro Activo.

45voto

Ilya Kochetov Puntos 11641

Hay sólo dos buenas: doctrina y Propel. Privilegiamos la doctrina, y funciona bien con Symfony. Sin embargo si buscas apoyo de base de datos además de los más importantes que usted tendrá que escribir su propio código.

33voto

stillstanding Puntos 10346

Axón ORM es parte de la Grasa-Libre de Marco - ofrece-la-mosca mapper. No generadores de código. No estúpido, XML,YAML de configuración de archivos. Lee el esquema de base de datos directamente desde el backend, por lo que en la mayoría de los LODOS de las operaciones que no tienen ni siquiera para extender un modelo de base. Funciona con todos los principales DOP-admite motores de base de datos: MySQL, SQLite, SQL Server/Sybase, Oracle, PostgreSQL, etc.

/* SQL */
CREATE TABLE products (
    product_id INTEGER,
    description VARCHAR(128),
    PRIMARY KEY (product_id)
);

/* PHP */
// Create
$product=new Axon('products'); // Automatically reads the above schema
$product->product_id=123;
$product->description='Sofa bed';
$product->save(); // ORM knows it's a new record

// Retrieve
$product->load('product_id=123');
echo $product->description;

// Update
$product->description='A better sofa bed';
$product->save(); // ORM knows it's an existing record

// Delete
$product->erase();

La mayoría de todos, el plug-in y el acompañamiento de SQL capa de acceso a datos son tan ligero como el marco: 14 KB (el Axón) + 6 KB (SQLdb). Libre de grasa está a solo 55 KB.

28voto

SchizoDuckie Puntos 6420

He estado desarrollando Pork.dbObject por mi cuenta. (Una implementación simple de la PHP ORM y Active Record) La razón principal es que me parece más ORMs demasiado pesado.

La principal de Pork.dbObejct es ligero y fácil de configurar. No hay un montón de archivos XML, una función llamada en el constructor para enlazar y addRelation o addCustomRelation para definir a una relación a otra dbObject.

Darle un vistazo: Pork.dbObject

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X