在此處進行另一個討論,瞭解如何進行身份驗證或更有可能進行身份驗證。誰應該認證用戶。驗證用戶的身份/驗證PHP OO
考慮下面的代碼示例:
<?php
class User {
public function isValid($username, $password) {
//Logic to check if username/password match
$this->setId($id);
}
}
與
<?php
class Auth {
public function isValid($username, $password) {
//Logic to check if username/password match
$user = new User;
$user->setId($id);
return $user;
}
}
我personnaly給下面的例子,爲什麼在這種情況下,#1不好: 如果允許用戶驗證自理。他們會走進電影院。他們可以走進任何電影。只要對自己說,他們是有效的。
其中第二個示例有一個外部對象檢查用戶的有效性。因此更「啪」
請注意,我在OOP編程中沒有任何教育,這可能是我在'08或'09開始編碼時讀回的東西:)我希望這裏有些人知道我的意思,並且可以然後解釋這裏的好/壞做法。
由於正在進行
僅僅是用來迷惑你:第三個方案。 'class User {public static function authenticate($ username,$ password){/ * test */return $ user; }}':)它是我更喜歡的方式。但是,我不認爲有這樣的方式。這取決於你的應用程序( - 設計)。 – KingCrunch 2011-04-27 10:39:09
我更喜歡第二種解決方案。看看Zend Framework的'Zend_Auth'解決了這個問題,並且很好地構建。 'Zend_Acl'也可能很有趣。 – 2011-04-27 10:56:36
我們目前有一個似乎可以工作的RBAC系統。只是解決我們想要驗證用戶身份的問題。無論是在用戶對象本身還是在一個獨立的類中 – Tjirp 2011-04-27 10:58:55