Ver Mensaje Individual
  #8 (permalink)  
Antiguo 19/08/2011, 12:24
Avatar de Ronruby
Ronruby
 
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 11 meses
Puntos: 416
Respuesta: Cómo resolver el siguiente requerimiento, respetando OCP

Que tal Carxl ... Veo que andas bien ocupado con tus proyectos xD

En cuanto a tu duda, yo lo haria creando una clase llamada Query por ejemplo.
Luego creo varias clases mas para que decoren a Query, como Join, Where, etc ...
Asi harias:
Código PHP:
Ver original
  1. $q = new Query("SELECT * FROM tabla1");
  2. $q = new Join($q, INNER, "tabla2", "tabla1.campo = tabla2.campo");
  3. $q = new Join($q, INNER, "tabla3", "tabla2.campo = tabla3.campo");
  4. $q = new Where($q, "tabla3.campo = 1");
  5. echo $q->getQuery();
Resultado:
Código SQL:
Ver original
  1. SELECT * FROM tabla1
  2. INNER JOIN tabla2 ON (tabla1.campo = tabla2.campo)
  3. INNER JOIN tabla3 ON (tabla2.campo = tabla3.campo)
  4. WHERE 1=1 AND tabla3.campo = 1

Al menos veo yo que es la mejor forma de hacer lo que deseas sin hacer cambios invasivos en tu código.

EDIT: Si alguien tiene una idea mejor bienvenida sea. Asi tambien aprendo.