Diciamo che ho una matrice che voglio convertire in un oggetto valore.Caricamento della classe dinamica PHP
il mio valore di classe di oggetto è la seguente:
/* file UserVO.php*/
class UserVO
{
public $id;
public $email;
public function __construct($data)
{
$this->id = (int)$data['id'];
$this->email = $data['email'];
}
}
E Creo il mio array di oggetti di valore come segue:
/* file UserService.php*/
$array = array(
array(...),
array(...));
$count = count($array);
for ($i = 0; $i < $count; $i++)
{
$result[] = new UserVO($array[$i]);
}
return $result;
OK, quindi questo tutto funziona bene. Tuttavia, mi piacerebbe specificare il VO che deve essere creato dinamicamente, in modo che io possa avere una singola funzione dinamica per creare i miei VO.
Qualcosa di simile:
$ret = create_vo($array, 'UserVO');
function create_vo($data, $vo)
{
$count = count($data);
for ($i = 0; $i < $count; $i++)
{
$result[] = new $vo($data[$i]); //this obviously wont work...Class name must be a valid object or a string
}
return $result;
}
mi rendo conto che avrei potuto fare questo con un'istruzione switch (iterazione attraverso tutti i miei VO) ... ma non c'è alcun dubbio un molto molto più elegante soluzione. Sarebbe anche un supercool se potessi caricare i VO come necessario, invece di avere più "include"
Qualsiasi aiuto molto apprezzato.
il tuo caricatore automatico utilizza ancora include o richiede che non carichi ogni cosa costantemente solo quando sono necessari, quindi il tuo argomento non è il più valido. poiché l'uso del caricatore automatico è più carico. –