好吧,我对OOP整体还是很陌生,但我现在已经创建了一些可行的类,我正在慢慢掌握PHP中各种OOP的概念。在我目前正在处理的项目中,用户可以注册,登录/注销以及上传/删除/评论/评价图像。
目前,当用户登录时,我将大部分信息(我从数据库中检索到的信息)放在$_SESSION
超全局中。这包括诸如名字,用户名,user_id等信息。
补充一点,我有一个名为user.functions.php
的页面,其中包含许多与“用户”概念相关的杂项功能,例如权限检查,请求其他用户数据,检查成功登录,注册用户等
我的问题是如何将其作为User
课程进行管理?如果我理解正确,页面上的任何内容都只存在于该页面上,所以我不必声明
new User();
在我需要执行与该用户相关的任务的每个页面上?无论如何这有效吗?调用类似函数不是更简单:
changeAddress();
而不是:
$user = new User();
$user->changeAddress();
我目前存储在会话中的关键用户数据如user_id
怎么样?我是否也会在类中迁移该数据并通过getter方法检索它?
基本上,我没有看到用户对象的概念如何能够提高整体代码质量,如果用户(这是一个固有的跨页面概念)与一个对象相关联,该对象仅存在于一个对象的范围内文件?
我在这里缺少什么?
答案 0 :(得分:0)
而不是将所有信息单独放在$_SESSION
中,您可以在会话中存储$ user对象,以便您可以从任何页面访问用户对象。
$_SESSION['user'] = new User();
$_SESSION['user']->changeAddress();
答案 1 :(得分:0)
您正在处理两个不同的概念:
因此,无论如何,您必须重新创建对象或实际上任何变量。创建某个类的对象不应该花费太多。填充成员是重要的。遵循非OO方法将导致填充单个变量而不是类的成员,而不会提高性能。