Tôi sẽ bắt đầu bằng cách sử dụng mô hình / người lập bản đồ. Đó là một cách rất đơn giản để lấy các đối tượng thuần túy và có thể duy trì chúng trong cơ sở dữ liệu. Nó cũng tránh trộn lẫn các lệnh gọi cơ sở dữ liệu và mã (logic bền vững) với chức năng (ứng dụng hoặc logic nghiệp vụ). Ví dụ đơn giản:
class User {
public $id;
public $username;
}
class UserMapper {
/**
* @param User $user
*/
public function save(User $user) {
if(isset($user->id)) {
$statement = "Update users set username = ? where id = ?"
} else {
$statement = "insert into users set username = ?, id = ?"
}
$instance = db::getInstance();
$sth = $instance->prepare($statement );
$values_a = array($user->username, $user->id);
$db_result = $sth->execute($values_a);
}
/**
* @param int $userId
* @return User
*/
public function load($userId) {
$statement = "select * from users where id = ?";
$instance = db::getInstance();
$sth = $instance->prepare($statement );
$values_a = array($user->id);
$db_result = $sth->execute($values_a);
$returnUser = new User();
$returnUser ->id = $db_result[0]['id'];
$returnUser ->username = $db_result[0]['username'];
return $returnUser;
}
}
Tôi cũng khuyên bạn nên sử dụng getters / setters, thay vì truy cập trực tiếp thành viên, nhưng điều này chỉ để đơn giản hóa mã ... Khi bạn phát triển nhiều mô hình / người lập bản đồ hơn, bạn sẽ tìm thấy chức năng lập bản đồ chung (lưu, tải, xóa, tìm kiếm) và bạn có thể cấu trúc lại mã của bạn để chứa logic chung để bạn không có nhiều copypasta.