Querría saber la opinión que tienen sobre él y si hay algún OMR mejor. Gracias!
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Estoy construyendo un sistema y he usado phpActiveRecord como OMR.
- preguntó
- Software
- 843 Vistas
- 1 Respuestas
- solucionada
1 Respuesta
Hola Diego,
es un tema largo, pero intentaré ser breve...
Primero ninguna estrategia ActiveRecord es un ORM (Mapeador Objeto/Relacional). Los Active Record entran entre los tópicos de Martin Fowler como "las prácticas que hacen las empresas", pero justamente Fowler las recoge como cosas mal hechas, que se usan igual porque funcionan, y no como ejemplo a seguir!
La cuestión es que Active Record consiste en que cada estructura de tabla se convierta en una clase, y que cada campo en un atributo, pero por el desajuste por impedancia entre el paradigma relacional y la POO, no hay forma directa de ir de un modelo al otro.
Los Active Record además llevan a un problema enorme de diseño que es el del Modelo Anémico: terminas con un montón de clases que no tienen comportamiento y son solamente campos de tablas: se lleva el modelo relacional a la jerarquía de clases alegremente, sin tener en cuenta que los principios de diseño de uno y otro con completamente diferentes.
Ahí es donde entran en juego los ORM: permiten mapear las complejidades de una jerarquía de clases en un almacenamiento relacional, de forma más o menos decente, porque, repito, son mundos distintos y no hay como llegar de un lado al otro.
Si vas a usar el modelo ActiveRecord, yo te diría que uses directamente los PDO (PHP Data Object) que provee el lenguaje, y no agregues una capa de software más. Los PDO son un ActiveRecord.
Si en cambio vas a modelar en Objetos y usarás un ORM, actualmente PHP es lo suficientemente maduro para permitir implementar Persistencia No Invasiva y por Alcance. Te recomiendo algún ORM moderno que soporte esto. En este breve apunte se explican las cualidades que debería tener un ORM y las desventajas de usar los que no cumplen con la POO: http://www.pegasusnet.com.ar/difusion/2012-10-ORM/CISL2012-MapeadorObjetoRelacional.pdf
Si querés usar un ORM que cumpla con los principios de la POO, podrías usar este https://github.com/PegasusTech/Persistent Acá lo estamos usando hace un par de años ya en proyectos en producción, y se comporta mucho mejor de la idea que da ver el código escrito ;-)
A propósito de este ORM, se aceptan ejemplos de uso sencillos para mejorar el manual. Tiene además como ventaja que podés consultar con el autor en EntreDesarrolladores ;-)
Saludos!
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 676871
- 1
- Jul 5, 2015
Sin Respuesta
-
- 63
- 0
- Oct 18
-
- 155
- 0
- Jul 9
-
- 515
- 1
- Mar 19
-
- 384
- 2
- Feb 26
-
- 4577
- 0
- Nov 7, 2023
-
- 473
- 0
- Sep 19, 2023
-
- 451
- 0
- Ago 21, 2023
-
- 632
- 0
- May 14, 2023
- ver todas
Preguntas relacionadas
- ¿Cómo especificar que un sitio web he usado software bajo licencia Apache?
- Alguien sabe como puedo hacer para enviar un email con php que incluya datos adjuntos y se mande a cierta hora?
- Algún ejemplo de como subir una imagen con php y que en automático la cargue en un div
- ¿Como crear un sistema de emision para una radio online?
- Como hacer un sistema web de gestion de citas medicas, ideas, algun software open source?
Actividad Reciente
alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en django
Ultimas Preguntas
Preguntas relacionadas
- ¿Cómo especificar que un sitio web he usado software bajo licencia Apache?
- Alguien sabe como puedo hacer para enviar un email con php que incluya datos adjuntos y se mande a cierta hora?
- Algún ejemplo de como subir una imagen con php y que en automático la cargue en un div
- ¿Como crear un sistema de emision para una radio online?
- Como hacer un sistema web de gestion de citas medicas, ideas, algun software open source?
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150480 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos