1. 维护代码健壮

2. 更新项目结构文档
This commit is contained in:
技术老胡
2026-04-27 16:20:41 +08:00
parent 9a16a88640
commit 0e5de50337
198 changed files with 21038 additions and 702 deletions

View File

@@ -0,0 +1,30 @@
<?php
namespace app\exception;
use Webman\Exception\BusinessException;
/**
* 认证配置异常。
*
* 用于认证域不存在、JWT 密钥长度不足和认证配置不合法等场景。
*/
class AuthConfigException extends BusinessException
{
/**
* 构造方法。
*
* @param string $message message
* @param array $data 数据
* @param int $bizCode 业务Code
* @return void
*/
public function __construct(string $message = '认证配置错误', array $data = [], int $bizCode = 50001)
{
parent::__construct($message, $bizCode);
if (!empty($data)) {
$this->data($data);
}
}
}

View File

@@ -0,0 +1,47 @@
<?php
namespace app\exception;
use Webman\Exception\BusinessException;
/**
* 命令执行异常。
*
* 用于命令行工具、测试命令和脚本解析失败等场景。
*/
class CommandException extends BusinessException
{
/**
* 构造方法。
*
* @param string $message 异常消息
* @param int $bizCode 业务码
* @param \Throwable|null $previous 前一个异常
* @param array<string, mixed> $data 附加数据
* @return void
*/
public function __construct(string $message = '命令执行失败', int $bizCode = 50002, ?\Throwable $previous = null, array $data = [])
{
parent::__construct($message, $bizCode, $previous);
if ($previous !== null) {
$data = array_merge([
'previous_exception' => $previous::class,
'previous_message' => $previous->getMessage(),
], $data);
}
$this->data($data);
}
/**
* 获取附加数据。
*
* @return array<string, mixed>
*/
public function getData(): array
{
$data = $this->data();
return is_array($data) ? $data : [];
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace app\exception;
use Webman\Exception\BusinessException;
/**
* 鉴权异常。
*
* 用于 token 缺失、token 无效和登录态失效等场景,统一业务码为 40100。
*/
class UnauthorizedException extends BusinessException
{
/**
* 构造方法。
*
* @param string $message message
* @param array $data 数据
* @param int $bizCode 业务Code
* @return void
*/
public function __construct(string $message = '未授权', array $data = [], int $bizCode = 401)
{
parent::__construct($message, $bizCode);
if (!empty($data)) {
$this->data($data);
}
}
}