到目前爲止語法是沒有問題的,但我的問題是更多更好地瞭解OOP跨越到PHP OOP
我創建了一個名爲「用戶」應該描述一個用戶類。通常這樣的類將設置用戶變量並檢索它們
該類是否也有註冊新用戶的方法? 如何登錄?
如果不是..我會如何構造它?
應該「註冊」是另一類嗎?在這種情況下,不會生成的對象是一個「用戶」
同樣適用於一個登錄類...
抱歉NOVIS問題....只是想換我周圍OOP頭。
感謝您的幫助:)
到目前爲止語法是沒有問題的,但我的問題是更多更好地瞭解OOP跨越到PHP OOP
我創建了一個名爲「用戶」應該描述一個用戶類。通常這樣的類將設置用戶變量並檢索它們
該類是否也有註冊新用戶的方法? 如何登錄?
如果不是..我會如何構造它?
應該「註冊」是另一類嗎?在這種情況下,不會生成的對象是一個「用戶」
同樣適用於一個登錄類...
抱歉NOVIS問題....只是想換我周圍OOP頭。
感謝您的幫助:)
大多數PHP OOP應用程序將使用模型 - 視圖 - 控制器(MVC)方法來解決這個問題,您的用戶類是'模型'和'控制器'類,提供與用戶類交互的業務邏輯,如'註冊或登錄'。 '視圖'部分是指輸出到瀏覽器的表示代碼(混合使用PHP/HTML)。
控制器的方法將是這個樣子:
class UserController {
public function signup($userDetails) {
// create a new user
$user = new User();
$user->name = $userDetails['name'];
$user->username = $userDetails['username'];
$user->password = $userDetails['password'];
$user->save(); // Save to database, for example
}
public function login($username, $password) {
// check the user exists and log them in
$user = new User();
// query database for a user with these credentials, for example
if($id = $user->find($username, $password)) {
$_SESSION['user'] = $id; // Save the ID to the session for future use
return true;
}
return false;
}
}
這只是一個非常簡單的例子,但一般你不想與混合應用程序邏輯(動作,如登錄或註冊)您域邏輯(它應該只關心管理你的數據)。
在PHP MVC的一篇好文章可以在這裏找到:http://oreilly.com/php/archive/mvc-intro.html
類不一定代表您的經驗的實體。有時它們代表一個概念:
這些只是一些例子,他們可能不會告訴你爲什麼它經常這樣做的原因。爲此,我建議關於面向對象編程的文獻。那些文獻應該告訴你關於問題的分離,失去耦合,打開/關閉原則,針對接口編程,如何將需求轉換爲類。
我是正確的假設,這些方法「拯救」與「發現」是在同一個UserController類也? – salmane 2011-03-21 00:23:34
對不起,我應該說得更清楚。在上面的例子中,它們存在於用戶類中。情況並非一定如此;你可以說上面的例子是一個'Active Record'(谷歌它)的方法,其中類包含與數據庫表交互的方法。他們在User類上比在UserController上更好的原因是,你可能想在應用程序的其他地方調用它們。如果你看看在CakePHP或Symfony這樣的框架中如何處理MVC,它應該是合理的。 – Craig 2011-03-21 13:36:19
謝謝Craig – salmane 2011-03-21 18:15:45