从类对象或PHP中的$ _SESSION访问数据是否更好?

时间:2015-03-18 13:40:41

标签: php oop session

我正在使用AJAXSQLPHP编写一个面向对象的聊天系统示例来训练自己。我在拯救"敏感"用户数据进入数据库以检查各种输入和进程,如登录,在线状态,发送的消息等。

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

基本上我对什么是更安全或更好的编程以及什么不是更感兴趣。我知道php-login project正在使用两种方式。它有点告诉我它们都很好,因为很多专业人士都在实现这个代码。我认为你应该坚持一种方法,还是我误解了什么?

1 个答案:

答案 0 :(得分:2)

除了实际会话内容的初始化(你已经知道,session_start()可能会在你的引导程序中出现),理想情况下你应该尝试不直接使用$ _SESSION,为什么要问? / p>

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

同样易于阅读,错误输入错误并导致错误的可能性极小(也许你必须检查管理状态很多,而你输入错误$_SESSION['is_amdin],现在你在这里使用了OOP(例如。 Auth::isAdmin())你会收到关于失踪功能的致命错误)

如果你试图保留你的东西OO并使用正确的IDE,你也会收到自动完成和代码提示的额外好处,你可以PHPDOC一个函数,许多IDE将使用它来提供文档你写的弹出窗口。像$_SESSION这样的关联数组没有任何方法可以为编辑器或人类定义提示!