2010-08-09 31 views
12

La siguiente cita ha convencido para finalmente ir a ORM. En el pasado, realmente no me gustó ORM y lo escribí como una forma estúpida de hacer sql. Tratar con datos jerárquicos en sql es un dolor con el que no quiero lidiar.¿Qué ORM para codeigniter?

Hay una razón por la que tenemos estos objetos "asignador relacional de objetos", y es debido a un problema conocido como desajuste de impedancia relacional entre objetos. Básicamente, el modelo matemático formal para bases de datos utilizado para asegurar que permanezcan intactos sigue un sistema de tablas con filas y columnas y referencias a otras tablas, mientras que las estructuras de datos en la mayoría de los lenguajes de programación que usamos manipulan datos en estructuras anidadas tipo árbol. Es más bien como la diferencia entre una hoja de cálculo y un documento XML, o entre un libro mayor y un diagrama de árbol genealógico. - http://zork.net/motd/nick/django/your-favorite-orm-sucks.html

Quiero algo con un mínimo esfuerzo de configuración. La mayoría de mis proyectos son pequeños, así que no quiero perder mucho tiempo definiendo modelos cuando solo los uso para algunas consultas.

Estoy usando codeigniter como framework php y MySQL como la base de datos.

+1

posible duplicado de [¿Buena biblioteca ORM de PHP?] (Http://stackoverflow.com/questions/108699/good-php-orm-library) y [muchos otros] (http://stackoverflow.com/search? q = orm + php) – Gordon

+2

Los datos jerárquicos en una base de datos que no tiene ningún soporte de consulta recursivo o jerárquico es su problema. PostgreSQL sería una alternativa viable, aunque hay versiones gratuitas de SQL Server y Oracle disponibles en la actualidad ... –

+0

@OMG Ponies Así que, básicamente, el problema es que mySQL no admite objetos, por lo que la única forma de obtener los datos es de forma recursiva. consulta o hacer un montón de combinaciones a la izquierda y terminar con datos redundantes? He tratado brevemente con Oracle, ¿un procedimiento almacenado es la herramienta correcta para esto o la consulta realmente puede devolver datos jerárquicos en objetos? – Keyo

Respuesta

9

Doctrine es brillante y muy fácil de configurar y usar con CI. Hay tres maneras de integrarlo 1) la forma descrita en el CI wiki 2) como un complemento 3) usando ganchos. No me gusta la opción 1, ya que implica jugar con los archivos del sistema de CI. La opción 2 es muy fácil y lo que uso actualmente. La configuración se describe en www.phpandstuff.com. Nunca he probado la opción 3 pero suena interesante - http://blog.medryx.org/2008/10/04/codeigniter-and-doctrine/

+0

Gracias. Estoy leyendo la documentación doctrinal. Hay mucho que aprender, pero si puedo usar esto en cualquier marco valdrá la pena. – Keyo

2

¿Qué tal Datamapper Overzealous Edition

Creo que el DataMapper originales (de stensi) ISN' t en desarrollo más. (Alguien me corrige si estoy equivocado) Datamapper Overzealous Edition es fácil de trabajar con Codeigniter.

Estoy seguro de que Doctrine funciona bien también, pero no estoy seguro de lo fácil que es configurar Codeigniter.

5

Creo que deberías probar el DataMapper ORM que está escrito en CI nativo. También es fácil de configurar y fácil de usar. Creo que es mejor que Doctrine.