我正在努力掌握OOP,并且只想就如何解决问题提出一些建议。
我正在我的网上商店推荐朋友系统,所以当用户注册时,他们将输入推荐他们的朋友的电子邮件地址。这位已经存在的朋友在其在线帐户中获得一定数量的积分(货币)。
我的大多数系统都只使用PHP中的函数和过程编程,但是想知道是否有人能指出我在OOP中将引用作为朋友系统的正确方向,或者即使值得在OOP中构建?
我确实理解OOP的基本原理,但不太确定如何使用它从头到尾完全构建程序。
答案 0 :(得分:3)
好的,这就是我要做的事情
Class User {
// ....
public function newUser(array $params, $isRefer = false, $referal = null) {
// $params Parameters for new user, like name, address etc
// $isRefer boolean value to trigger referal
// $referal Email of the referer
$newUser = new user_model($params);
//Create a DBO of user, as per the new parameters
if(isReferal) { $referer = $this -> getUserIdByEmail($referal); }
//If is referal, get his id, based on email
$status = $this -> add($newUser); //Add the user
//Add the user
if($status) {
//Once it is success
$referer = new User($referer); //Create a object of referer
$referer -> addPoints(50); // Give bonus point
}
return true; //Indicate the success
}
public function __construct($id = null) {
if($id) {
//create the object
$this -> id = $id;
}
// ....
}
protected function getUserIdByEmail($email) {
//get the id
return $id;
}
protected function addPoints($points) {
//add the points on database table
return true;
}
}
DBO类可能与此类似
class UserDBO {
protected $name;
protected $address;
public function __construct(array $params) {
$this -> name = $params['name'];
$this -> address = $params['address'];
}
}
用法:
$userObj = new User();
$userObj -> newUser(array("name", address"), true, "referal@email.com");