我有一個基本上只設置和檢索會話變量的會話類, 我之所以這麼做的原因是我可以很容易地將它改爲使用會話或類似於memcache的 來設置項目和讓他們可以訪問多個頁面而不會觸及數據庫關於會話存儲類設計的反饋
然後我有這個用戶類,它使用會話對象來獲取會話變量。
我想添加到這個用戶類雖然,爲了使它更加封裝我想能夠設置我在這個類中檢索的變量 所以現在我可以顯示用戶ID $ user-> userid ;我想首先有一個方法或東西,從會話對象設置它的價值我猜 這聽起來是一個好主意或可能很多開銷嗎?
如果我想要做的是一個好主意,也許你可以建議/展示我應該怎麼做的例子?我在想,如果我添加該方法,那麼我應該將__construct方法中的代碼移動到它自己的方法中
基本上,我在構造方法中使用的類的頂部列出了變量,如果我在課堂上有多種方法,但是我需要將它們全部設置在頂部嗎?
<?PHP
//user.class.php file
class User
{
public $userid;
public $name;
public $pic_url;
public $gender;
public $user_role;
public $location_lat;
public $location_long;
public $newuser;
function __construct()
{
global $session;
if($session->get('auto_id') != ''){
//set user vars on every page load
$this->userid = $session->get('auto_id'); //user id number
$this->name = $session->get('disp_name');
$this->pic_url = $session->get('pic_url');
$this->gender = $session->get('gender');
$this->user_role = $session->get('user_role');
$this->location_lat = $session->get('lat');
$this->location_long = $session->get('long');
$this->newuser = $session->get('newregister');
}else{
return false;
}
}
}
//with the class above I can easily show some user variables I have saved into a session like this below
$user = new user();
$user->userid;
?>
爲什麼不通過構造函數傳遞會話而不是將其用作全局?這會使依賴更加明顯。 – cdmckay 2009-09-24 20:35:28
@cdmckay好主意我可能會這麼做 – JasonDavis 2009-09-24 21:42:08