Hola que tal?
Estoy usando ActiveTable / ActiveRecord en mi framework (tal vez por que es lo primero con lo que di y quiza haya algo mejor).
El caso es que desde que lo implemente, ya casi 1 año, siempre me encuentro con el mismo problema...
Tengo una clase padre con la logica del patron, con todo lo necesario para leer una tabla, cargar, actualizar y recuperar datos.
Luego tengo mis clases, por ejemplo, supongamos una clase "clientes", heredada de la primera (active table). Por lo general para pedir la lista de clientes haria algo asi:
Código PHP:
$clientes_admin = new Clientes_Admin();
$clientes = $clientes_admin->findAll();
// Ahora $clientes es mi array de clientes...
Esto es super comodo, pero el problema es que muchas veces tengo que alterar algun dato recuperado, supongamos que quiero procesar el campo "nombre" de cada cliente para que se vea diferente... si YA tengo la lista de clientes, no me queda otra que hacer:
Código PHP:
$clientesTotal = count($clientes);
for ($i=0;$i<$clientesTotal;$i++) {
// Proceso cada nombre
$clientes[$i]['nombre'] = strtolower($clientes[$i]['nombre']);
}
Lo malo de esto es tener que usar un BUCLE EXTRA... es decir, el metodo la llamada a $clientes_admin->findAll() ya esta utilizando un bucle de forma interna para hacer el fetch de cada row de la base... y luego hago otro para procesar...
No se si estoy siendo muy claro, pero de todos modos me imagino que esta situacion es normal o lo ha sido para muchos...
¿Hay algo que pueda hacer para evitar meter un bucle de más? (¿Podre evitar tener que utilizar funciones tipo Call Back dentro de mi clase padre Active Table?)
Muchas gracias !