在PHP中,从类对象还是从$\会话访问数据更好?

在PHP中,从类对象还是从$\会话访问数据更好?,php,oop,session,Php,Oop,Session,我正在使用AJAX、SQL、PHP编写一个面向对象的聊天系统示例,以训练自己。我将“敏感”用户数据保存到数据库中,以检查各种输入和过程,如登录、在线状态、发送的消息等 但是,当用户登录系统时,我会检查$\u SESSION['status']是否为true或false,以授予对网站不同位置的访问权限。我用classLogin.class检查一个单独文件中的数据,从那里我可以决定是保留Login.class的对象以接收用户信息并使用它,还是在$\u会话变量(即$\u会话['username']等)

我正在使用
AJAX
SQL
PHP
编写一个面向对象的聊天系统示例,以训练自己。我将“敏感”用户数据保存到数据库中,以检查各种输入和过程,如登录、在线状态、发送的消息等

但是,当用户登录系统时,我会检查
$\u SESSION['status']
是否为
true
false
,以授予对网站不同位置的访问权限。我用class
Login.class
检查一个单独文件中的数据,从那里我可以决定是保留
Login.class
的对象以接收用户信息并使用它,还是在
$\u会话
变量(即
$\u会话['username']
等)中保存所有内容后“杀死”该对象


基本上,我感兴趣的是什么更安全或更好的编程,什么不是。我知道这是双向的。这有点告诉我它们都是可以的,因为很多专业人士已经实现了这段代码。我认为您应该坚持使用一种方法,或者我误解了什么吗?

除了初始化实际会话之外(您已经知道,使用
session\u start()
,它可能会放在引导程序的某个地方),您最好不要直接使用$\u session,为什么要问

因为可维护性!假设您想实现另一种形式的会话,也许您想使用memcache而不是平面文件会话,只使用cookies(我之所以这样说是因为PHP默认将会话ID存储在cookie中,所以实际上您已经在使用cookies!)

此外,易于阅读,打字错误不被注意并导致错误的可能性最小(可能您必须经常检查管理员状态,并且您错误地键入了
$\u SESSION['is\u amdin]
,现在如果您在这里使用OOP(例如
Auth::isAdmin()
),您将收到一个关于丢失函数的致命错误)


如果你试图让你的东西面向对象,并使用一个合适的IDE,你还将获得自动完成和代码提示的额外好处,你可以PHPDOC一个函数,许多IDE将使用它在你写的时候提供文档弹出窗口。像
$\u SESSION
这样的assoc数组无法为编辑器或人员定义提示

您说您想编写一个示例oop系统-正在访问
$\u会话
oop吗?我对此表示怀疑。与其使用
Login
类,我建议使用
Auth
类来放置代码。想象一下,如果您将来想从会话切换到cookie,您是想查看所有文件并替换
$\u会话的每个实例,还是只更新您的类?欢迎使用Stackoverflow!很难理解你想问什么。它是关于两个概念(php登录方式和纯会话方式)的吗?您对安全性的哪些方面感兴趣?大多数情况下,独自做事并不比使用库更安全。另外:你能提供一些代码吗?我们可以看到你已经尝试过的东西。事实上,这是一个很好的观点。当我开始使用
$\u SESSION
时,我的目的是培训如何使用它,到目前为止,我从未使用过cookies。但是,虽然我知道他们,我没有考虑使用。但是,通常使用
$\u会话
的做法是否不好?他们缺乏安全问题吗?我想知道为什么不使用them@JosuaSchmid谢谢我的问题是广义的,我想理解“幕后”部分。所以基本上就是如果或者为什么不应该使用它们。我正在学习,这就是我不使用图书馆的原因。到目前为止,代码非常复杂,但如果我的评论没有澄清,我可以将其上传到pastebin!