初始化本地仓库

This commit is contained in:
2026-08-31 11:33:59 +08:00
commit 663f74b633
2390 changed files with 402918 additions and 0 deletions
@@ -0,0 +1,121 @@
<?php
declare(strict_types=1);
namespace app\api\event;
use Webman\Event\Event;
/**
* 会员用户信息获取事件
*
* 当获取用户信息时触发,允许监听器动态添加权限、自定义字段等
*/
class MemberInfoFetchedEvent
{
/**
* 会员ID
*/
public int $memberId;
/**
* 用户数据(允许监听器修改)
*/
public array $userData = [];
/**
* 权限数组(允许监听器追加)
*/
public array $permissions = [];
/**
* 额外数据(允许插件等追加自定义字段)
*/
public array $extra = [];
/**
* 构造函数
*/
public function __construct(int $memberId, array $userData = [], array $permissions = [], array $extra = [])
{
$this->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);
}
}