在OOP中引用网站的朋友功能

时间:2012-03-20 09:15:13

标签: php oop

我正在努力掌握OOP,并且只想就如何解决问题提出一些建议。

我正在我的网上商店推荐朋友系统,所以当用户注册时,他们将输入推荐他们的朋友的电子邮件地址。这位已经存在的朋友在其在线帐户中获得一定数量的积分(货币)。

我的大多数系统都只使用PHP中的函数和过程编程,但是想知道是否有人能指出我在OOP中将引用作为朋友系统的正确方向,或者即使值得在OOP中构建?

我确实理解OOP的基本原理,但不太确定如何使用它从头到尾完全构建程序。

1 个答案:

答案 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");