Basit modeller için PHP OOP Tasarım

1 Cevap php

Ben bazı basit veritabanı modelleri için uygun tasarımı ile küçük bir sorun var. I alıcı / ayarlayıcıları ve bir okuma yöntemi ile bir kullanıcı nesnesi var diyelim. Veritabanını querys okuyun ve özelliklerini ayarlar.

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
}

}

Benim Problem birden fazla kullanıcı geri dönmek için nasıl, nedir?

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

Hedef:

// 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();
}

Bunun için en iyi yöntemler?

1 Cevap

Sadece kullanıcılar ile bir dizi dönebilirdi

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