alvaro-prieto
5/16/2017 - 7:47 AM

inyecta inyectar PHP

inyecta inyectar PHP



La idea de inyectar, es pasar información de un registro (un array), a un objeto
tipado. Por ejemplo, si tenemos un listado de personas, siendo un array de arrays
$resultados = [
 [nombre=>Alvaro,  edad=>34, ...],
  [nombre=>Juanito,  edad=>28, ...],
  ...
]

permite pasar cada uno de los registros, al campo datos de su clase asociada, así
podríamos hacer:

$Persona = new Persona();
$Persona->inyecta( $resultados[0] );
y entonces $Persona->datos->nombre;  será Alvaro


Se utiliza para hacer una única query a BD y después iterar por los objetos por 
PHP sin necesidad de molestar al servidor con peticiones.

Tener en cuenta lo siguiente:

* Da igual que el registro (array) contenga más campos que el objeto, (habitual con joins),
  si tiene campos adicionales se agregarán pero en principio no interfieren con nada
* Si el registro tiene campos adicionales y no los queremos pasar, se pueden mapear, 
  seleccionando unicamente los que queremos
* El registro puede ser un array creado manualmente, o pasarle los campos 
  calculados mapeandolos.
* Mapearlo es obvio, es simplemente pasarle el array que espera creado a mano, por ejemplo:



$Persona->inyecta( ["nombre"=> "Esteban", "edad" =>38, ...] );


* También se puede inyectar en cadenas de relación:

$Persona->Direccion->inyecta( $direcciones[1]);