PHP dynamic class loading

neurostar

New Member
Lets say that I have an array that I want to convert to a value object.My value object class is as follows:\[code\]/* file UserVO.php*/ class UserVO { public $id; public $email; public function __construct($data) { $this->id = (int)$data['id']; $this->email = $data['email']; } }\[/code\]And I create my array of value objects as follows:\[code\]/* file UserService.php*/$array = array(array(...),array(...));$count = count($array);for ($i = 0; $i < $count; $i++){ $result[] = new UserVO($array[$i]);}return $result;\[/code\]OK, so this all works fine. However, I'd like to specificy the VO that is to be created dynamically, so that I can have a single dynamic function to create my VO's.Something like:\[code\]$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;}\[/code\]I realise that I could do this with a switch statement (iterating through all my VO's)...but there is no doubt a much much more elegant solution. It would also be supercool if I could lazy load the VO's as needed, instead of having multiple 'includes'Any help much appreciated.
 
Back
Top