Bien, tengo el siguiente requerimiento:
Hay una consulta sql que puede ir creciendo en cualquier momento, son casi como condiciones en el where.
Lo normal que se haría, sería algo como esto:
Código PHP:
Ver original
$sql = $condiciones = $innerjoins = null; $sql = "select * from tabla1 $innerjoins where table1.campo1 in (2,3,4) $condiciones;"; if ($tipoAlgo) { innerjoins .= 'inner join tabla2 on tabla1.campo3=tabla2.campo1 '; $condiciones .= 'and tabla2.tipo=4 '; } if ($maxAlgo) { innerjoins .= 'inner join tabla2 on tabla3.campo3=tabla2.campo2 '; $condiciones .= 'and max_value=100 '; } . . . $result = ejecutar_query($sql); //mostrar resultados
Si lo hiciera así, estaría violando el principio Open/Close, porque cada vez que me pidan una nueva condición, tendría que estar escribiendo if y dando lugar a posibles errores.
Qué ideas se les ocurren para cubrir el requerimiento pero respetando OCP.
Quedo pendiente
Gracias!