chore: 添加静态资源文件和版本配置文件

添加大量图片、字体、音频等静态资源文件,包括用户界面图片、模板文件和安装界面素材
添加系统版本配置文件(.version)和常量定义文件(.constant)
更新供应商依赖文件,包括Symfony VarDumper组件和相关许可证文件
添加验证码配置文件(captcha.php)和.gitignore规则
This commit is contained in:
2026-03-06 20:14:23 +08:00
commit c9a98f342c
4485 changed files with 490986 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
# 接口分析报告:/api/share
## 1. 接口概述
- **URL**: `https://shop.douba.top/api/share`
- **Method**: `GET`
- **功能**: 获取微信分享所需的配置信息(图片、标题、简介)。
## 2. 路由定义
- **文件**: [route/api.php](file:///home/jone/workspace/CRMEB_PRO/route/api.php)
- **代码位置**: `Route::get('share', 'v1.PublicController/share')->name('share');`
- **中间件**:
- `StationOpenMiddleware`: 检查站点是否开启。
- `AuthTokenMiddleware` (参数: `false`): 尝试获取用户信息,但不强制登录。
## 3. 控制器实现
- **文件**: [app/controller/api/v1/PublicController.php](file:///home/jone/workspace/CRMEB_PRO/app/controller/api/v1/PublicController.php)
- **类**: `PublicController`
- **方法**: `share`
- **代码逻辑**:
```php
public function share()
{
// 1. 获取分享图片配置
$data['img'] = sys_config('wechat_share_img');
// 2. 处理图片链接:如果是相对路径,拼接站点域名
if ($data['img'] && strstr($data['img'], 'http') === false) {
$data['img'] = sys_config('site_url') . $data['img'];
}
$data['img'] = str_replace('\\', '/', $data['img']);
// 3. 获取分享标题和简介
$data['title'] = sys_config('wechat_share_title');
$data['synopsis'] = sys_config('wechat_share_synopsis');
// 4. 返回 JSON 响应
return app('json')->successful($data);
}
```
## 4. 业务逻辑流程
1. **请求接收**: 客户端发起 `GET` 请求。
2. **路由匹配**: 匹配到 `v1.PublicController/share`。
3. **中间件处理**: 验证站点状态,尝试获取用户身份(非强制)。
4. **控制器执行**:
- 调用 `sys_config` 读取 `wechat_share_img`。
- 补全图片 URL(依赖 `site_url` 配置)。
- 调用 `sys_config` 读取 `wechat_share_title` 和 `wechat_share_synopsis`。
5. **响应返回**: 数据封装为标准 JSON 格式。
## 5. 数据来源
- 数据主要来源于 `system_config` 表,通过 `sys_config()` 辅助函数读取。
- 涉及配置项:
- `wechat_share_img`: 微信分享图片
- `wechat_share_title`: 微信分享标题
- `wechat_share_synopsis`: 微信分享简介
- `site_url`: 网站域名
## 6. 调用链总结
`Client` -> `Route (/api/share)` -> `Middleware (StationOpen, AuthToken)` -> `PublicController::share()` -> `sys_config (Read Config)` -> `JSON Response`

View File

@@ -0,0 +1,18 @@
# 数据库连接异常分析与修复方案
## 问题分析
报错信息 `SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)` 表明系统正尝试使用空密码连接数据库,但被拒绝。
经过排查发现:
1. 项目根目录下的 `.env` 文件中配置了正确的数据库密码 (`PASSWORD = dblink`)。
2. 但是,该 `.env` 文件使用了 **Mac Classic (CR, \r)** 格式的换行符,而不是标准的 Unix (LF, \n) 或 Windows (CRLF, \r\n) 格式。
3.这种非标准的换行符导致 PHP 的环境配置解析库无法正确识别文件内容,将整个文件视为一行,从而无法读取到 `DATABASE_PASSWORD` 等关键配置。
4. 由于读取不到密码,系统回退到默认的空密码尝试连接,最终导致了上述权限错误。
## 修复计划
我们将执行以下步骤来修复此问题:
1. **转换文件格式**:将 `.env` 文件的换行符从 CR 转换为标准的 LF (Unix 格式)。
2. **验证修复**:确认文件内容已正确分行,且应用能够正常连接数据库。
此修复不涉及代码逻辑修改,仅修正配置文件的格式问题。