Files
leonapp/README.md
2025-09-20 22:20:08 +08:00

258 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# App Store 项目
这是一个基于 PHP 7.4 的 App Store 项目,使用 Bootstrap 实现 Fluent Design 风格界面,数据存储采用 MySQL 数据库。项目各页面顶栏已添加 logo 图片,路径为 `/favicon.jpeg`,点击可跳转至首页,图片设置了高度 30px、右边距 10px 以及圆角样式 `var(--border-radius)`
## 项目结构
```
app2/
├── config.php # 配置文件,包含数据库和管理员信息
├── app_store.sql # 数据库初始化 SQL 文件
├── index.php # 首页
├── app.php # App 信息页
├── admin/ # 管理员后台目录
│ ├── addapp.php
│ ├── deleteapp.php
│ ├── editapp.php
│ ├── index.php
│ ├── login.php
│ ├── manage_tags.php
│ ├── review_apps.php
│ └── system_info.php
├── developer/ # 开发者后台目录
│ ├── dashboard.php
│ ├── edit_app.php
│ ├── login.php
│ ├── logout.php
│ ├── profile.php
│ ├── register.php
│ └── upload_app.php
├── vendor/ # Composer 依赖
├── includes/ # 通用包含文件
├── api.php # API 接口文件
├── styles.css # 自定义 CSS 文件
├── images/ # 存储 App 预览图片和年龄分级 SVG
│ ├── age_3plus.svg
│ ├── age_7plus.svg
│ ├── age_12plus.svg
│ ├── age_17plus.svg
├── files/ # 存储 App 文件
```
## 环境要求
- PHP 7.4+
- MySQL 5.7+
- Composer
- Node.js (可选,用于前端资源构建)
- Web 服务器(如 Apache 或 Nginx
## 快速启动指南
对于有经验的开发者,可按照以下步骤快速部署:
```cmd
# 1. 克隆项目并进入目录
.git clone <repository-url> app2
cd app2
# 2. 创建并配置环境文件
copy config.example.php config.php
# 编辑config.php设置数据库和邮件信息
# 3. 创建数据库并导入结构
mysql -u root -p -e "CREATE DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p your_db_name < app_store.sql
# 4. 安装依赖并设置权限
composer install
icacls files /grant Users:(OI)(CI)W
icacls images /grant Users:(OI)(CI)W
# 5. 启动开发服务器
php -S localhost:8000
```
访问 http://localhost:8000 开始使用管理员后台地址http://localhost:8000/admin
## 详细安装教程
### 1. 环境准备
确保您的系统满足以下要求:
- PHP 7.4+推荐PHP 8.0+
- MySQL 5.7+ 或 MariaDB 10.2+
- ComposerPHP依赖管理工具
- Web服务器Apache/Nginx/IIS或PHP内置服务器
- Git可选用于版本控制
#### 检查PHP环境
打开命令提示符输入以下命令验证PHP版本
```cmd
php -v
# 应显示PHP 7.4.0或更高版本
# 检查必要扩展
php -m | findstr /i "mysqli pdo_mysql json curl fileinfo"
# 确保以上扩展均已安装
```
### 2. 获取项目代码
选择以下任一方式获取代码:
#### 方式一使用Git克隆推荐
```cmd
git clone <repository-url> app2
cd app2
```
#### 方式二:手动下载
1. 从项目仓库下载ZIP压缩包
2. 解压到本地目录(如 `c:\web\app2`
3. 打开命令提示符,进入项目目录:
```cmd
cd c:\web\app2
```
### 3. 数据库配置
#### 创建数据库
1. 登录MySQL控制台
```cmd
mysql -u root -p
```
2. 创建数据库(将`your_db_name`替换为您喜欢的数据库名称):
```sql
CREATE DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
exit
```
#### 导入数据库结构
```cmd
mysql -u root -p your_db_name < app_store.sql
```
> **注意**:请确保在导入前替换命令中的`your_db_name`为您实际创建的数据库名称
### 4. 应用配置
#### 创建配置文件
如果项目中存在`config.example.php`
```cmd
copy config.example.php config.php
```
如果不存在,请手动创建`config.php`文件并添加以下内容:
```php
<?php
// 数据库配置
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', 'your_database_password');
define('DB_NAME', 'your_db_name');
define('APP_URL', 'http://localhost'); // 应用基础URL
define('ADMIN_EMAIL', 'admin@example.com'); // 默认管理员邮箱
define('ADMIN_PASSWORD', 'admin123'); // 默认管理员密码(首次登录后必须修改)
// 邮件服务配置(用于开发者注册验证)
define('SMTP_HOST', 'smtp.example.com');
define('SMTP_PORT', 465);
define('SMTP_USER', 'your_email@example.com');
define('SMTP_PASS', 'your_email_password');
define('SMTP_ENCRYPTION', 'ssl'); // 通常为ssl或tls
define('DEBUG_MODE', true); // 开发环境设为true生产环境设为false
?>
```
#### 配置参数说明
| 参数 | 说明 | 示例值 |
|------|------|--------|
| DB_HOST | 数据库主机地址 | localhost |
| DB_USER | 数据库用户名 | root |
| DB_PASS | 数据库密码 | your_actual_password |
| DB_NAME | 数据库名称 | app_store |
| APP_URL | 应用访问URL | http://localhost/app2 |
| DEBUG_MODE | 调试模式开关 | true/false |
### 5. 安装依赖
使用Composer安装项目依赖
```cmd
composer install
```
> 如果没有安装Composer请先从 https://getcomposer.org/ 下载并安装
### 6. 设置目录权限
项目需要对以下目录有写入权限:
- `files/`:存储上传的应用文件
- `images/`:存储应用截图和图标
#### 图形界面方式(推荐)
1. 在文件资源管理器中找到项目目录
2. 右键点击`files`文件夹,选择**属性**
3. 切换到**安全**选项卡,点击**编辑**
4. 选择当前用户,勾选**写入**权限,点击**确定**
5. 对`images`文件夹执行相同操作
#### 命令行方式
```cmd
icacls files /grant Users:(OI)(CI)W
icacls images /grant Users:(OI)(CI)W
```
### 7. 配置Web服务器
#### 选项A使用PHP内置开发服务器推荐用于开发
```cmd
php -S localhost:8000
```
## API 文档
### 根路径 `/api`
- **方法**GET
- **功能**:返回可用端点信息
- **响应示例**
```json
{
"status": "success",
"message": "App Store API",
"version": "1.0",
"endpoints": {
"/api?action=list": "获取应用列表支持search、platform、age_rating、tag、page、limit参数。search搜索关键词platform平台age_rating年龄分级tag标签page页码limit每页数量",
"/api?action=app&id=1": "获取指定ID的应用详情需传入app_id参数。包含应用基础信息、版本、图片、评价和标签信息",
},
"example": "GET /api?action=list&search=游戏&limit=10"
}
```
### 应用列表 `/api?action=list`
- **方法**GET
- **功能**:获取应用列表,支持多条件筛选和分页查询
- **参数**
- `search`:搜索关键词,可选
- `platform`:平台,可选
- `age_rating`:年龄分级,可选
- `tag`:标签,可选
- `page`页码可选默认1
- `limit`每页数量可选默认10
- **响应示例**
```json
{
"data": [
{
"id": "1",
"name": "示例应用",
"description": "这是一个示例应用",
"age_rating": "3+",
"avg_rating": "4.5"
}
],
"pagination": {
"total": 100,
"page": 1,
"limit": 10,
"totalPages": 10
}
}
```
### 应用详情 `/api?action=app&id={id}`
- **方法**GET
- **功能**获取指定ID应用的详细信息包含基础信息、版本、图片、评价和标签信息
- **参数**
- `id`应用ID必需数字类型
- **响应示例**:响应包含应用基础信息、版本、图片、评价和标签信息。