# 笔记管理系统 - PHP 后端

基于 PHP 7.4 的笔记管理系统后端，使用 Slim Framework 4 构建 RESTful API。

## 环境要求

- PHP 7.4（线程安全版）
- MySQL 5.7+
- Apache/Nginx
- Composer

## 安装步骤

### 1. 安装依赖

```bash
cd biji-php
composer install
```

### 2. 配置环境变量

复制 `.env.example` 为 `.env` 并修改配置：

```bash
cp .env.example .env
```

编辑 `.env` 文件，配置数据库连接信息：

```
DB_HOST=localhost
DB_PORT=3306
DB_NAME=biji_db
DB_USER=root
DB_PASS=your_password

JWT_SECRET=your-secret-key-change-this
JWT_EXPIRE=86400

CORS_ORIGIN=http://localhost:5173
```

### 3. 导入数据库

使用 `sql/mysql/all.sql` 文件创建数据库表结构。

```bash
mysql -u root -p biji_db < ../sql/mysql/all.sql
```

### 4. 配置 Web 服务器

#### Apache 配置

确保启用了 `mod_rewrite` 模块，并将网站根目录指向 `public` 目录。

#### Nginx 配置示例

```nginx
server {
    listen 80;
    server_name your-domain.com;
    root /path/to/biji-php/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
```

## API 接口文档

### 用户接口 (`/api/user`)

- `POST /register` - 用户注册
- `POST /login` - 用户登录
- `POST /validate-token` - 验证 Token（需认证）
- `PUT /password` - 更新密码（需认证）
- `DELETE /deleteUser` - 删除用户（需认证）

### Markdown 接口 (`/api/markdown`)

- `GET /{id}` - 获取笔记内容
- `GET /` - 获取所有笔记
- `POST /updateMarkdown` - 更新笔记（需认证）
- `DELETE /{id}` - 删除笔记（需认证）

### 分组接口 (`/api/groupings`)

- `GET /` - 获取所有分组（需认证）
- `POST /` - 创建分组（需认证）

## 项目结构

```
biji-php/
├── public/              # Web 根目录
│   ├── index.php       # 入口文件
│   └── .htaccess       # Apache 重写规则
├── src/                # 源代码
│   ├── Controllers/    # 控制器
│   ├── Models/         # 模型
│   ├── Middleware/     # 中间件
│   └── Utils/          # 工具类
├── config/             # 配置文件
├── uploads/            # 文件上传目录
├── vendor/             # Composer 依赖
└── composer.json       # Composer 配置
```

## 开发说明

本项目遵循以下原则：
- PSR-4 自动加载
- RESTful API 设计
- JWT Token 认证
- MVC 架构模式

## 许可证

MIT License
