2009-12-14 3 views
0

몇 가지 간단한 데이터베이스 모델에 대한 적절한 디자인에 약간의 문제가 있습니다. 수 있습니다 getter/setters 및 메서드를 사용하여 사용자 개체가 있다고 가정 해 봅니다. 읽기는 데이터베이스 쿼리 및 속성을 설정합니다.간단한 모델을위한 PHP OOP 디자인

class User extends MyDbBaseClass 
{ 

protected $_id; 
protected $_name; 

public function setId($id) 
{ 
    $this->_id = $id; 
} 

public function setName($name) 
{ 
    $this->_name = $name; 
} 

public function getId() 
{ 
    return (int) $this->_id; 
} 

public function getName() 
{ 
    return (string) $this->_name; 
} 

public function read($id) 
{ 
    // fetch ONE record from Database 
    $this->_id = $this->setId($sqlResult['id'); 
    $this->_name = $this->setName($sqlResult['name']); 
} 

public function save() 
{ 
    // do some sql stuff to save user to database 
} 

}

내 문제는 어떻게 여러 사용자를 반환?

public function getCollection() 
{ 
    // fetch all user records from database 
    forearch ($sqlResult as $result) { 
     // ... no idea.. 
    } 
} 

목표 :

// works 
$u = new User(); 
$u->read(1); 
echo $u->getName(); 

// dont know the best way 
$u = new User(); 
$uC = $u->getCollection(); 

foreach ($uC as $u) 
{ 
    echo $u->getName(); 
} 

이에 대한 모든 모범 사례?

답변

1

당신은 사용자와 배열을 반환 할 수

public function getCollection() 
{ 
    // fetch all user records from database 
    $users = array(); 
    forearch ($sqlResult as $result) { 
    // ... no idea.. 
    $user = new User(); 
    $user->_name = $result->name; // just an example 
    $user[] = $users; 
    } 
    return $users; 
}