Hola, cómo vamos?
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!