到目前为止,语法不是问题,但我的问题更多是关于更好地理解OOP
我正在创建一个名为“user”的类,它应该描述用户。通常这样的类会设置用户变量并检索它们
该类是否也有注册新用户的方法? 登录怎么样?
如果没有..我会如何构建它?
应该“注册”成为另一个班级吗?在这种情况下,结果对象不是“用户”
同样适用于登录类......
对于novis问题感到抱歉....只是试图绕过OOP。
感谢您的帮助:)
答案 0 :(得分:4)
类不一定代表您体验中的实体。有时他们代表一个概念:
论文只是一些例子,他们可能没有告诉你为什么经常这样做的原因。为此我建议有关面向对象编程的文献。这些文献应该告诉你关注点分离,失去耦合,开放/关闭原则,对接口编程,如何将需求转换为类。
答案 1 :(得分:3)
大多数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