在此处进行另一个讨论,了解如何进行身份验证或更有可能进行身份验证。谁应该认证用户。验证用户的身份/验证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