La forma en que lo veo es así. Para usar un ORM, generalmente tiene que apilar varias funciones de php, y luego conectarse a una base de datos y esencialmente ejecutar una consulta de MySQL o algo similar.
¿Por qué toda la abstracción entre el código y la base de datos? ¿Por qué no podemos simplemente usar lo que ya sabemos? Normalmente, un desarrollador web conoce su lenguaje back-end, su lenguaje db (algún tipo de SQL) y algún tipo de lenguajes frontend, como html, css, js, etc. ...
En esencia, estamos tratando de agrega una capa de abstracción que incluye muchas funciones (y todos sabemos que las funciones de PHP pueden ser más lentas que la asignación de una variable). Sí, esto es un micro cálculo, pero aún así, suma.
Ahora no solo tenemos que realizar varias funciones, sino que también tenemos que aprender cómo funciona el ORM, por lo que hay algo de tiempo desperdiciado allí. Pensé que la idea de separar el código era mantener el código separado en todos los niveles. Si está en el mundo de LAMP, solo cree su consulta (debe conocer MySQL) y use la funcionalidad de php ya existente para las declaraciones preparadas. ¡HECHO!
LAMPARA FORMA:
- crear consulta (cadena);
- use las declaraciones preparadas de mysqli y recupere datos en una matriz.
ORM MANERA:
- ejecutar una función que obtiene la entidad
- que se ejecuta una consulta de MySQL
- carrera otra función que añade un condicional
- carrera otra función que añade otra condicional
- ejecutar otra función que se une a
- ejecutar otra función que se suma condicionales en la unión
- carrera otra función que prepara
- ejecuta otra consulta MySQL
- carrera otra función que recupera los datos
- corre otra MySQL Query
¿Alguien más tiene un problema con la pila ORM? ¿Por qué nos estamos convirtiendo en desarrolladores tan perezosos?¿O tan creativo que estamos perjudicando nuestro código? Si no está roto, no lo arregles. A su vez, arregla tu equipo de desarrollo para que entienda los conceptos básicos del desarrollo web.
Estoy de acuerdo en que este es un problema, y este es mi principal motivo de preocupación con ORMS. Odio que tengas que 'SELECCIONAR' el objeto solo para actualizar uno de sus campos, lo que genera múltiples consultas. Esto es algo que voy a abordar a través de la carga diferida. – ryeguy