¿Puede alguien proporcionarme un par de razones claras (basadas en hechos) para usar/aprender DQL vs. SQL cuando necesite una consulta personalizada mientras trabajo con Doctrine Classes?Con Doctrine, ¿cuáles son los beneficios de usar DQL sobre SQL?
Creo que si no puedo usar la funcionalidad relacional incorporada de un ORM para lograr algo, generalmente escribo un método personalizado en la clase DoctrineTable o Doctrine extendida. En este método, escriba el necesario en SQL directo (usando PDO con las declaraciones preparadas/protección de inyección adecuadas, etc.). DQL parece un lenguaje adicional para aprender/depurar/mantener que no aparece proporciona suficientes razones convincentes para usar en situaciones más comunes. DQL no parece ser mucho menos complejo que SQL para garantizar su uso; de hecho, dudo que pueda usar DQL efectivamente sin tener una comprensión sólida de SQL. La mayoría de los puertos de sintaxis SQL básicos funcionan bastante bien en los DB más comunes que usará con PHP.
¿Qué me estoy perdiendo/pasando por alto? Estoy seguro de que hay una razón, pero me gustaría saber de las personas que intencionalmente la han usado de manera significativa y de qué fue la ganancia al tratar de trabajar con SQL simple.
No estoy buscando un argumento que apoye ORMs, solo DQL cuando necesite hacer algo fuera del núcleo tipo 'get-by-relationship' needs, en una configuración LAMP tradicional (usando mysql, postgres, etc ...)
No tengo argumentos basados en hechos, pero he encontrado que las relaciones de nombres son más fáciles de usar que las condiciones de unión, menos propensas a errores y tediosas de escribir. –