我有一個叫「查看器」的小類。這個類應該查看每個頁面的正確佈局或類似的東西...從數據庫獲取數據get-method的東西?
我有一個名爲getFirstPage的方法,當調用此方法的用戶將得到一個設置值,其頁面當前設置爲第一頁。我有一些代碼在這裏,我想它的工作原理,但我真的不舒爾我做了正確的方式:
class Viewer {
private $db;
private $user;
private $firstPage;
function __construct($db, $user) {
$this->db = $db;
if(isset($user)) {
$this->user = $user;
} else {
$this->user = 'default';
}
}
function getFistPage() {
$std = $db->prepare("SELECT firstPage FROM settings WHERE user = ':user'");
$std->execute(array(':user' => $user));
$result = $std->fetch();
$this->firstPage = $result['firstPage'];
return $this->firstPage;
}
}
我GET方法取出由DATABSE設置(到目前爲止好?)。問題是,那麼我必須使用這個get方法來設置私有變量firstPage。似乎我應該有一個設置方法來做到這一點,但我真的不能有一個只從數據庫中獲取設置的set方法,對吧?因爲此對象的用戶應該能夠假定已經在對象中定義了一個設置...
我應該怎麼做?
寫這個方法的時候我完全忘記了public關鍵字!我的第一個想法是在構造函數中初始化所有的值(應該不止是第一頁),但後來我發現你不應該那樣做。我應該怎麼做,如果我想在此時初始化多個參數?我可以寫一個初始化方法嗎? – theva
初始化方法被認爲是不好的做法。您只需在構造函數中設置對象狀態並在方法中執行所有計算。在調用getFirstPage方法之前,爲什麼要初始化'firstPage'? –
作爲查看器的對象取決於當前用戶設置,因此作爲實例的對象在沒有firstPage設置的情況下不會完成。 – theva