Digamos que tengo una matriz que quiero convertir a un objeto de valor.Clase dinámica de PHP cargando
Mi clase de objeto de valor es el siguiente:
/* file UserVO.php*/
class UserVO
{
public $id;
public $email;
public function __construct($data)
{
$this->id = (int)$data['id'];
$this->email = $data['email'];
}
}
Y creo mi matriz de objetos de valor de la siguiente manera:
/* file UserService.php*/
$array = array(
array(...),
array(...));
$count = count($array);
for ($i = 0; $i < $count; $i++)
{
$result[] = new UserVO($array[$i]);
}
return $result;
OK, así que todo esto funciona bien. Sin embargo, me gustaría especificar el VO que se creará dinámicamente, de modo que pueda tener una sola función dinámica para crear mi VO.
Algo así como:
$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;
}
me di cuenta de que podía hacer esto con una instrucción switch (iteración a través de todo de mi VO) ... pero no hay duda de mucho mucho más elegante solución. También sería supercool si pudiera cargar perezosos los VO según sea necesario, en lugar de tener múltiples 'incluye'
Cualquier ayuda muy apreciada.
su cargador automático sigue utilizando incluir o no requieren que no se carga cada cosa constante sólo cuando son necesarios para que su argumento no es la más válida. ya que usar el autocargador es más carga. –