试图了解$user->;phpbb3中的数据工作

试图了解$user->;phpbb3中的数据工作,php,phpbb,phpbb3,Php,Phpbb,Phpbb3,我喜欢尝试和了解开源软件是如何工作的,这样我就可以尝试和学习新的方法来创建代码,并增加我对某些编程语言的知识 我一直在挖掘phpbb3代码,试图了解它如何通过各种类管理会话和用户信息 我无法在任何类中跟踪$user->data的设置位置。有人能帮助分解他们的会话管理类如何与他们的用户类一起工作吗 大多数访问会话和用户类的文件都以以下代码开头: // Start session management $user->session_begin(); $auth->acl($user-&g

我喜欢尝试和了解开源软件是如何工作的,这样我就可以尝试和学习新的方法来创建代码,并增加我对某些编程语言的知识

我一直在挖掘phpbb3代码,试图了解它如何通过各种类管理会话和用户信息

我无法在任何类中跟踪$user->data的设置位置。有人能帮助分解他们的会话管理类如何与他们的用户类一起工作吗

大多数访问会话和用户类的文件都以以下代码开头:

// Start session management
$user->session_begin();
$auth->acl($user->data);
我已经能够跟踪session_begin函数在session类中的位置,并且我看到session类扩展了user类,但是我无法跟踪$user->data的设置或返回位置


有人有好的分类吗?

在每一页上,首先要做的是
包括($phpbb\u root\u path.'common.$phpEx)
,这意味着如果您的php文件扩展名是php,则包含一个文件/common.php

此文件包括/includes/compatibility_globals.php并运行
register_compatibility_globals()
$user=$phpbb_容器->获取('user')。该类位于\phpbb\user

由于用户类扩展了\phpbb\session,因此$user从\phpbb\session获取所有属性。属性之一是
data
,方法之一是
session\u begin
。现在,您已经拥有启动会话所需的一切:
$user->session_begin()。在该方法内部的某个地方,
$user->data
获取其第一个值:

// if session id is set
if (!empty($this->session_id))
{
  $sql = 'SELECT u.*, s.*
    FROM ' . SESSIONS_TABLE . ' s, ' . USERS_TABLE . " u
    WHERE s.session_id = '" . $db->sql_escape($this->session_id) . "'
      AND u.user_id = s.session_user_id";
  $result = $db->sql_query($sql);
  //data property
  $this->data = $db->sql_fetchrow($result);
  $db->sql_freeresult($result);
“我喜欢尝试和了解开源软件是如何工作的,这样我就可以尝试和学习新的方法来创建代码,并增加我对某些编程语言的知识。”-总是一件好事。而不是那些盲目使用库和框架而不知道它们在做什么的人。或者只是告诉别人“使用框架”而不是鼓励他们实际学习代码的人。所以,道具+1!是的,在像PHP这样的语言中,几乎每个模块都以
include()、require()、
require\u once()
开头,在这里您可以找到所有“序言”活动,通常进一步细分为其他此类包含文件的嵌套。