PHP dinamik sınıf yükleme

0 Cevap php

Ben bir değer nesnesi dönüştürmek istediğiniz bir dizi var olduğunu söylemek sağlar.

Aşağıdaki gibi benim değer nesne sınıfı:

/* file UserVO.php*/
 class UserVO
 {
    public $id;
    public $email;

     public function __construct($data)
     {
         $this->id = (int)$data['id'];
         $this->email = $data['email'];
     } 
 }

Aşağıdaki gibi Ve ben değer nesnelerin benim dizi oluşturmak:

/* file UserService.php*/
$array = array(
array(...),
array(...));
$count = count($array);
for ($i = 0; $i < $count; $i++)
{
   $result[] = new UserVO($array[$i]);
}
return $result;

Tamam, bu tüm çalışıyor. Ancak, benim VO adlı oluşturmak için tek bir dinamik bir işleve sahip olabilir, böylece dinamik olarak oluşturulan olmaktır VO specificy istiyorum.

Gibi bir şey:

$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;
}

Ben (tüm VO adlı yineleme) bir switch deyimi ile bu yapabileceğini biliyoruz ... ama hiç şüphesiz çok çok daha zarif bir çözüm yoktur. Ayrıca supercool olurdu ben tembel yük gelse VO adlı olarak yerine birden sahip, 'içerir' gerekli

Herhangi bir yardım çok takdir.

0 Cevap