memberId = $memberId; $this->userData = $userData; $this->permissions = $permissions; $this->extra = $extra; } /** * 获取用户数据 */ public function getUserData(): array { return $this->userData; } /** * 获取权限数组 */ public function getPermissions(): array { return $this->permissions; } /** * 获取额外数据 */ public function getExtra(): array { return $this->extra; } /** * 触发事件 */ public function dispatch(): void { Event::emit('member.info.fetched', $this); } /** * 添加权限 */ public function addPermission(string $permission): void { if (!in_array($permission, $this->permissions)) { $this->permissions[] = $permission; } } /** * 批量添加权限 */ public function addPermissions(array $permissions): void { foreach ($permissions as $permission) { $this->addPermission($permission); } } /** * 添加额外字段 */ public function addExtra(string $key, mixed $value): void { $this->extra[$key] = $value; } /** * 添加用户数据字段 */ public function addUserData(string $key, mixed $value): void { $this->userData[$key] = $value; } /** * 检查是否有某个权限 */ public function hasPermission(string $permission): bool { return in_array($permission, $this->permissions); } }