मैं मॉडल/मैपर का उपयोग करके शुरू करूंगा। सादा वस्तुओं को प्राप्त करने और उन्हें डेटाबेस में बनाए रखने में सक्षम होने का यह एक बहुत ही आसान तरीका है। यह डेटाबेस कॉल और कोड (दृढ़ता तर्क) को कार्यक्षमता (एप्लिकेशन या व्यावसायिक तर्क) के साथ मिलाने से भी बचता है। सरल उदाहरण:
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;
}
}
मैं सीधे सदस्य पहुंच के बजाय गेटर्स/सेटर्स का उपयोग करने की भी सिफारिश करता हूं, लेकिन यह केवल कोड की सादगी के लिए था ... जैसे-जैसे आप अधिक मॉडल/मैपर विकसित करते हैं, आपको सामान्य मैपर कार्यक्षमता (सहेजना, लोड करना, हटाना, ढूंढना) मिलेगा और आप सामान्य तर्क को समाहित करने के लिए आपके कोड को पुन:सक्रिय कर सकता है ताकि आपके पास कोपिपास्ता का एक गुच्छा न हो।