领度 PHP 框架(LingDuCodePHP) 是一款零依赖、轻量、高性能的国产开源 PHP 框架,专为快速开发与 AI 辅助编程设计,无需 Composer 即可独立运行。

开源下载地址:https://gitee.com/lingdubingfeng/ling-du-php-framework

# LingDuCodePHP 框架特性文档

> 版本:2.0.0 | 永久性免费开源·支持个企商业使用  
> 官网:http://lingducode.cn  
> 许可证:Apache License 2.0

---

## 一、框架概述

LingDuCodePHP 是一款基于 PHP 8.0+ 的企业级 MVC 开发框架,采用零依赖设计,所有核心组件自研实现。框架以安全、高性能、易扩展为核心设计理念,内置丰富的企业级功能模块,适用于中大型 Web 应用、API 服务、后台管理系统等场景。

### 核心设计原则

- **零依赖** — 无 Composer 依赖,所有核心组件自研,部署零门槛
- **安全优先** — 全链路安全防护,从请求到响应的每个环节均有安全机制
- **模块化架构** — 模块/插件双扩展体系,功能即插即用
- **多驱动支持** — 缓存、队列、数据库、短信、存储等均支持多驱动切换
- **生产就绪** — 内置熔断、限流、链路追踪、健康检查等微服务治理能力

---

## 二、系统要求

| 项目 | 要求 |
|------|------|
| PHP 版本 | >= 8.0 |
| PDO 扩展 | 必须(pdo_mysql) |
| MBString 扩展 | 必须 |
| cURL 扩展 | 必须 |
| OpenSSL 扩展 | 必须 |
| FileInfo 扩展 | 必须 |
| GD 扩展 | 必须 |
| 数据库 | MySQL 5.7+ / PostgreSQL / SQLite / SQL Server |

---

## 三、目录结构

```
LingDuCodePHP/
├── app/                          # 应用目录
│   ├── admin/                    # 后台管理模块
│   │   ├── controller/           # 控制器
│   │   ├── middleware/           # 中间件
│   │   └── view/                 # 视图模板
│   ├── api/                      # API 接口模块
│   │   ├── controller/
│   │   └── middleware/
│   ├── common/                   # 公共模块
│   │   ├── controller/
│   │   ├── model/
│   │   ├── validate/
│   │   └── trait/
│   ├── index/                    # 前台模块
│   ├── install/                  # 安装向导
│   ├── user/                     # 用户中心模块
│   └── providers/                # 服务提供者
├── config/                       # 配置文件
│   ├── app.php                   # 应用配置
│   ├── database.php              # 数据库配置
│   ├── cache.php                 # 缓存配置
│   ├── route.php                 # 路由配置
│   ├── mail.php                  # 邮件配置
│   ├── sms.php                   # 短信配置
│   ├── upload.php                # 上传配置
│   ├── auth.php                  # 实名认证配置
│   ├── log.php                   # 日志配置
│   └── session.php               # 会话配置
├── framework/                    # 框架核心
│   ├── core/                     # 核心组件
│   ├── db/                       # 数据库层
│   ├── cache/                    # 缓存驱动
│   ├── queue/                    # 队列驱动
│   ├── rate/                     # 限流算法
│   ├── circuit/                  # 熔断器
│   ├── oauth/                    # OAuth 登录
│   ├── payment/                  # 支付集成
│   ├── mail/                     # 邮件驱动
│   ├── sms/                      # 短信驱动
│   ├── auth/                     # 实名认证
│   ├── filesystem/               # 文件存储
│   ├── template/                 # 模板引擎
│   ├── captcha/                  # 验证码
│   ├── crypt/                    # 加密组件
│   ├── cookie/                   # Cookie 管理
│   ├── session/                  # 会话管理
│   ├── pagination/               # 分页组件
│   ├── upload/                   # 文件上传
│   ├── notify/                   # 通知组件
│   ├── websocket/                # WebSocket
│   ├── pdf/                      # PDF 生成
│   ├── excel/                    # Excel 处理
│   ├── trace/                    # 链路追踪
│   ├── health/                   # 健康检查
│   ├── monitor/                  # 性能监控
│   ├── apidoc/                   # API 文档生成
│   ├── api/                      # API 资源
│   ├── console/                  # 命令行工具
│   ├── plugin/                   # 插件管理
│   ├── module/                   # 模块管理
│   ├── schedule/                 # 任务调度
│   ├── testing/                  # 测试组件
│   ├── exception/                # 异常类
│   └── helpers.php               # 全局辅助函数
├── lang/                         # 语言包
│   ├── zh-cn/
│   └── en/
├── public/                       # Web 根目录
│   ├── assets/                   # 静态资源
│   ├── admin.php                 # 后台入口
│   ├── api.php                   # API 入口
│   └── bootstrap.php             # 引导文件
├── lingdu.php                    # 命令行入口
└── .env.example                  # 环境变量示例
```

---

## 四、核心组件

### 4.1 MVC 架构

| 组件 | 类 | 说明 |
|------|-----|------|
| 控制器 | `framework\core\Controller` | 基础控制器,提供请求分发、视图渲染、CSRF 验证 |
| 模型 | `framework\core\Model` | ORM 模型,支持时间戳、软删除、类型转换、关联关系 |
| 视图 | `framework\core\View` | 模板渲染引擎 |
| 请求 | `framework\core\Request` | HTTP 请求封装,支持参数获取、文件上传、IP 解析 |
| 响应 | `framework\core\Response` | HTTP 响应封装,支持 JSON/重定向/流式输出 |

### 4.2 依赖注入容器

`framework\core\Container` — 支持:

- 自动依赖注入(构造函数 + 方法注入)
- 接口绑定实现
- 单例绑定
- **ReflectionUnionType** 处理(PHP 8 联合类型)
- **循环依赖检测**(在 `resolve()` 入口检测,避免无限递归)

```php
$container = new Container();
$container->bind(RepositoryInterface::class, RedisRepository::class);
$instance = $container->make(RepositoryInterface::class);
```

### 4.3 路由系统

`framework\core\Route` — 支持:

- GET / POST / PUT / DELETE / PATCH / ANY 注册
- 路由分组与中间件分配
- RESTful 资源路由
- 路径参数提取(`{id}` 语法)
- **路由缓存**(`RouteCache` 编译缓存,避免每次请求重新解析)
- 正则路由编译(`preg_quote` 安全转义)

```php
Route::get('/user/{id}', 'user.User/info');
Route::post('/user/create', 'user.User/create');
Route::group(['middleware' => 'auth'], function() {
    Route::get('/dashboard', 'admin.Index/index');
});
```

### 4.4 数据库与 ORM

**连接管理** `framework\db\ConnectionManager`

- 多数据库支持:MySQL / PostgreSQL / SQLite / SQL Server
- 读写分离:配置 `read` / `write` 主机
- 集群模式:多读主机负载均衡
- 连接池管理,最大连接数限制
- **SQLite 路径遍历防护**

**查询构建器** `framework\db\Builder`

- 链式调用:`where` / `orWhere` / `whereIn` / `join` / `order` / `limit`
- 聚合查询:`count` / `sum` / `avg` / `max` / `min`
- 事务支持:`startTrans` / `commit` / `rollback`
- 参数化查询,防 SQL 注入
- **表名/字段名反引号转义**(`str_replace('`', '``')`)

**ORM 模型** `framework\core\Model`

- 自动时间戳(`createtime` / `updatetime`)
- 软删除(`deletetime`)
- 类型转换(`$casts`)
- 批量赋值保护(`$fillable` / `$guarded`)
- 字段隐藏(`$hidden`,如 `password`)
- 数据获取器/修改器
- 关联关系:`hasOne` / `hasMany` / `belongsTo` / `belongsToMany`
- `inc()` / `dec()` 原子操作(检查主键存在性)
- `toArray()` 递归处理关联模型

**数据库迁移** `framework\db\Migration`

- Schema Builder:`createTable` / `addColumn` / `addIndex`
- 字段类型:`string` / `integer` / `bigInteger` / `decimal` / `text` / `datetime` / `enum` 等
- 迁移回滚与重置
- **列名/索引名反引号安全转义**

### 4.5 缓存系统

`framework\core\Cache` — 门面类,通过 `Cache::store()` 获取驱动实例。

**支持驱动:**

| 驱动 | 类 | 特性 |
|------|-----|------|
| File | `framework\cache\File` | 文件缓存,支持 TTL、文件锁、目录自动创建 |
| Redis | `framework\cache\Redis` | 类型前缀序列化(`i:`/`f:`/`b:`),保持浮点/布尔精度 |
| Memcache | `framework\cache\Memcache` | inc/dec 安全处理序列化值 |
| Memcached | `framework\cache\Memcached` | inc/dec 安全处理序列化值,`array_key_exists` 支持 null |
| APCu | `framework\cache\Apcu` | 本地内存缓存,`apcu_store` 返回值校验 |

**统一接口** `CacheInterface`:`get` / `set` / `delete` / `has` / `inc` / `dec` / `getMultiple` / `setMultiple`

### 4.6 验证器

`framework\core\Validator` — 支持:

- 内置规则:`required` / `email` / `mobile` / `url` / `ip` / `integer` / `numeric` / `min` / `max` / `between` / `date` / `dateFormat` / `in` / `notIn` / `regex` / `confirmed` / `same` / `different` / `unique`
- 自定义规则与消息
- 场景验证
- **`validated()` 支持点号规则**(如 `user.email`),构建嵌套数据结构
- 验证异常 `ValidationException`

```php
$validator = new Validator($data, [
    'username' => 'required|alpha_num|min:4|max:20',
    'email'    => 'required|email|unique:user',
    'password' => 'required|min:6|confirmed',
]);

if ($validator->fails()) {
    $errors = $validator->errors();
}
$validData = $validator->validated();
```

---

## 五、安全体系

### 5.1 安全组件

`framework\core\Security` — 全局安全工具类:

| 方法 | 功能 |
|------|------|
| `hashPassword()` | 密码哈希(bcrypt,自动加盐) |
| `verifyPassword()` | 密码验证(`hash_equals` 防时序攻击) |
| `generateToken()` | CSRF Token 生成(`random_bytes`) |
| `verifyCsrfToken()` | CSRF Token 验证(`hash_equals`) |
| `xssClean()` | XSS 过滤(`htmlspecialchars` + 实体编码) |
| `encrypt()` / `decrypt()` | AES-256-GCM 对称加密 |

### 5.2 CSRF 防护

- 表单自动注入 `_token` 隐藏域
- AJAX 请求通过 `X-CSRF-TOKEN` Header 传递
- 支持豁免路由配置
- Token 一次性使用,验证后即销毁

### 5.3 会话安全

- **Session ID 48位**,每字符6位熵值
- `use_strict_mode` 防止会话固定攻击
- `use_only_cookies` 禁止 URL 传递 Session ID
- `cookie_httponly` 禁止 JavaScript 访问
- `cookie_samesite=Lax` 防 CSRF
- 登录后 `session_regenerate_id(true)` 重新生成 ID
- 空闲超时 + 绝对超时双重过期机制

### 5.4 Cookie 安全

`framework\cookie\Cookie` — 支持:

- **Encrypt-then-MAC** 模式(先加密后签名,防篡改)
- 解密失败返回默认值,不抛异常
- `httponly` / `secure` / `samesite` 属性

### 5.5 加密组件

`framework\crypt\Crypt` — 支持:

- AES-256-GCM 认证加密
- PBKDF2 密钥派生
- 数组加密/解密(`encryptArray` / `decryptArray`)
- 密钥与 MAC 密钥分离

### 5.6 文件上传安全

`framework\upload\Upload` — 多层防护:

- 文件扩展名白名单
- 危险扩展名黑名单(php/phar/exe/asp/jsp/svg 等 30+ 种)
- MIME 类型校验
- 文件内容检测
- **路径遍历防护**(`/\.{2,}/` 正则 + `realpath` 校验)
- 文件名随机化 + SHA1 哈希校验
- 自动子目录(按日期 `Y/m/d`)

### 5.7 重定向安全

- 相对路径验证(`/` 开头且非 `//`)
- 绝对路径主机白名单(`app.allowed_hosts` 或 `app.url` 配置)
- **禁止 `$_SERVER['HTTP_HOST']` 直接使用**,防主机头注入

---

## 六、队列系统

`framework\core\Queue` — 统一队列管理,支持多驱动:

| 驱动 | 类 | 特性 |
|------|-----|------|
| Database | `framework\queue\DatabaseQueue` | 数据库表存储,零依赖 |
| Redis | `framework\queue\RedisQueue` | Redis List + Sorted Set,支持延迟队列 |
| RabbitMQ | `framework\queue\RabbitMQQueue` | AMQP 协议,DLX 死信队列,消息确认 |
| Kafka | `framework\queue\KafkaQueue` | Kafka 消费者组,rebalance 回调,nack 重试 |

**通用特性:**

- `work()` 守护进程模式,支持 `pcntl` 信号处理
- 内存使用监控,超限自动重启
- 任务失败重试与错误日志
- 延迟队列支持

```php
Queue::push('SendEmailJob', ['email' => 'user@example.com']);
Queue::later(60, 'ProcessDataJob', ['id' => 123]); // 延迟60秒
```

---

## 七、限流与熔断

### 7.1 限流算法

`framework\rate\RateLimiter` — 四种算法可选:

| 算法 | 类 | 适用场景 |
|------|-----|---------|
| 固定窗口 | `framework\rate\FixedWindow` | 简单限流,精度要求低 |
| 滑动窗口 | `framework\rate\SlidingWindow` | 精确限流,无边界突发 |
| 令牌桶 | `framework\rate\TokenBucket` | 允许突发流量,平均速率控制 |
| 漏桶 | `framework\rate\LeakyBucket` | 严格恒定速率输出 |

统一接口 `RateLimiterInterface`:`attempt()` / `hits()` / `available()` / `remaining()` / `clear()` / `availableIn()`

### 7.2 熔断器

`framework\circuit\CircuitBreaker` — 三态模型:

- **Closed(关闭)** — 正常请求,统计失败率
- **Open(打开)** — 快速失败,不执行请求
- **Half-Open(半开)** — 探测恢复,允许少量请求

配置项:失败阈值、恢复时间、探测请求数。`CircuitBreakerManager` 管理多个熔断器实例。

---

## 八、OAuth 第三方登录

`framework\oauth` — 支持:

| 平台 | 类 | 特性 |
|------|-----|------|
| 微信 | `WechatOAuth` | 网页授权,获取 openid/用户信息 |
| QQ | `QQOAuth` | OAuth 2.0,回调参数安全校验 |
| GitHub | `GitHubOAuth` | OAuth 2.0 标准流程 |
| 微博 | `WeiboOAuth` | OAuth 2.0 标准流程 |

**安全特性:**

- **强制 state 参数**,防 CSRF 攻击
- 回调校验 `strpos` 返回值,防逻辑绕过
- Access Token 安全存储

---

## 九、支付集成

`framework\payment` — 支持:

| 平台 | 类 | 特性 |
|------|-----|------|
| 支付宝 | `Alipay` | RSA2 签名/验签,异步通知,沙箱模式 |
| 微信支付 | `WechatPay` | HMAC-SHA256 签名,XML/JSON 双格式,企业付款 |

**安全特性:**

- **防重放攻击**(缓存幂等性校验)
- 金额验证(`bccomp` 精确比较)
- 异步通知签名验证
- XML 解析禁用外部实体(`LIBXML_NOENT` 已移除,`LIBXML_NONET` 启用)
- 请求体大小限制

---

## 十、邮件与短信

### 10.1 邮件

`framework\mail` — 支持:

| 组件 | 说明 |
|------|------|
| `Mailer` | 链式调用:`to()` / `subject()` / `body()` / `send()` |
| `Smtp` | SMTP 协议驱动,支持 SSL/TLS 加密 |
| `MailDriver` | 基础驱动,地址格式校验,`<>` 字符转义 |

**安全特性:**

- TLS 握手验证
- SMTP 状态重置(`finally` 块中 `reset()`)
- CRLF 注入防护

### 10.2 短信

`framework\sms` — 支持:

| 驱动 | 类 | 说明 |
|------|-----|------|
| 阿里云 | `Aliyun` | 阿里云短信服务 |
| 腾讯云 | `Tencent` | 腾讯云短信服务 |
| 短信宝 | `Smsbao` | 短信宝服务 |

统一接口 `SmsInterface`,通过 `Sms` 门面类调用。

---

## 十一、文件存储

`framework\filesystem` — 支持:

| 驱动 | 类 | 说明 |
|------|-----|------|
| 本地 | `LocalFilesystem` | 本地文件系统 |
| 阿里云 OSS | `AliyunOss` | 阿里云对象存储 |
| 腾讯云 COS | `TencentCos` | 腾讯云对象存储,HEAD 请求获取元数据 |
| 七牛云 | `QiniuStorage` | 七牛云对象存储,全 HTTPS |

统一接口 `FilesystemInterface`:`put` / `get` / `delete` / `exists` / `size` / `lastModified` / `mimeType` / `url`

---

## 十二、模板引擎

`framework\template\Engine` — 自研轻量模板引擎:

| 标签 | 语法 | 说明 |
|------|------|------|
| 变量输出 | `{$var}` | 自动 HTML 转义 |
| 条件判断 | `{if}...{elseif}...{else}...{/if}` | 条件分支 |
| 循环遍历 | `{foreach $list as $item}...{/foreach}` | 数组遍历 |
| 模板继承 | `{extend name='layout' /}` | 布局继承 |
| 模板块 | `{block name='content'}...{/block}` | 内容区块 |
| 包含文件 | `{include file='header' /}` | 子模板引入 |
| 原始输出 | `{$var|raw}` | 不转义输出 |
| 函数调用 | `{$var|date='Y-m-d'}` | 变量函数处理 |

**安全特性:**

- 默认 HTML 转义防 XSS
- `switch/case` 使用回调白名单防代码注入
- 变量名白名单校验
- `allow_php_tag` 默认关闭

---

## 十三、验证码

| 类型 | 类 | 说明 |
|------|-----|------|
| 图形验证码 | `framework\captcha\Captcha` | 随机字符 + 干扰线/噪点,`hash_equals` 验证 |
| 滑动验证码 | `framework\captcha\SliderCaptcha` | 滑块拼图验证,容差范围校验 |

**安全特性:**

- 验证码一次性使用,验证后立即销毁
- 验证码有效期限制
- `hash_equals` 防时序攻击

---

## 十四、实名认证

`framework\auth` — 支持:

| 驱动 | 类 | 说明 |
|------|-----|------|
| 阿里云 | `AliyunAuth` | 身份证二要素/三要素/人脸比对 |
| 腾讯云 | `TencentAuth` | 身份证核验 |

统一接口 `AuthInterface`:`verifyIdCard` / `verifyIdCardAndName` / `verifyIdCardNamePhoto`

**安全特性:**

- 所有验证请求使用 **POST 方法**(保护 PII 数据)
- 15位身份证号支持
- 身份证号脱敏显示

---

## 十五、WebSocket

`framework\websocket` — 支持:

| 组件 | 类 | 说明 |
|------|-----|------|
| 服务端 | `SocketServer` | TCP Socket 服务器,WebSocket 协议握手/帧编解码 |
| 驱动 | `WebSocketDriver` | 驱动抽象 |
| 接口 | `WebSocketInterface` | 统一接口 |

**功能:**

- WebSocket 协议握手(Sec-WebSocket-Key/Accept)
- 帧编码/解码(RFC 6455)
- 频道订阅/退订/广播
- 客户端管理

---

## 十六、链路追踪

`framework\trace` — 分布式链路追踪:

| 组件 | 类 | 说明 |
|------|-----|------|
| 追踪器 | `Tracer` | Span 栈管理,traceId/spanId 生成 |
| 跨度 | `Span` | 操作名、时间、状态、标签 |
| 中间件 | `TraceMiddleware` | 自动注入/提取 traceId |
| 存储 | `TraceStorage` | Redis 存储,SCAN 查询,`LOCK_EX` 写入 |

---

## 十七、健康检查

`framework\health\HealthCheck` — 支持检查项:

- 磁盘空间(`disk_total_space` / `disk_free_space`)
- 数据库连接(`Db::query('SELECT 1')`)
- 缓存读写(`Cache::store()` set/get/delete 循环)
- PHP 版本与扩展
- 内存使用

---

## 十八、任务调度

`framework\schedule\ScheduleManager` — 支持:

- Cron 表达式调度(5位标准格式)
- 频率快捷方法:`everyMinute()` / `hourly()` / `daily()` / `weekly()` / `monthly()`
- 定时执行:`dailyAt('08:30')` / `hourlyAt(15)`
- 命令调度 / 回调调度 / Shell 执行
- 守护进程模式(`startDaemon()` / `stopDaemon()`)
- 任务重叠保护(`withoutOverlapping()`)
- 超时控制(`timeout()`)

---

## 十九、命令行工具

`lingdu.php` — 内置 30+ 命令:

### 代码生成

| 命令 | 说明 |
|------|------|
| `make:controller` | 创建控制器 |
| `make:model` | 创建模型 |
| `make:middleware` | 创建中间件 |
| `make:validator` | 创建验证器 |
| `make:command` | 创建命令 |
| `make:migration` | 创建迁移文件 |
| `make:module` | 创建模块 |
| `make:plugin` | 创建插件 |
| `scaffold` | 根据数据库表生成 CRUD 代码 |

### 数据库

| 命令 | 说明 |
|------|------|
| `migrate` | 执行数据库迁移 |
| `migrate:rollback` | 回滚迁移 |
| `migrate:refresh` | 重置并重新迁移 |
| `migrate:status` | 查看迁移状态 |
| `db:seed` | 填充数据库 |

### 缓存

| 命令 | 说明 |
|------|------|
| `cache:clear` | 清除所有缓存 |
| `cache:config` / `config:cache` | 缓存配置文件 |
| `config:clear` | 清除配置缓存 |
| `cache:route` / `route:cache` | 缓存路由 |
| `route:clear` | 清除路由缓存 |
| `route:list` | 显示所有路由 |

### 插件与模块

| 命令 | 说明 |
|------|------|
| `plugin:install` | 安装插件 |
| `plugin:uninstall` | 卸载插件 |
| `plugin:list` | 显示所有插件 |
| `plugin:enable` / `plugin:disable` | 启用/禁用插件 |
| `module:list` | 显示所有模块 |
| `module:delete` | 删除模块 |

### 运行时

| 命令 | 说明 |
|------|------|
| `queue:work` | 启动队列工作进程 |
| `schedule:run` | 运行任务调度 |
| `test` | 运行测试 |
| `version` | 显示框架版本 |
| `help` | 显示帮助信息 |

---

## 二十、插件与模块体系

### 插件管理

`framework\plugin\PluginManager`

- 安装/卸载/启用/禁用插件
- 插件配置管理
- 插件路径获取
- **`validateName()` 防路径遍历**
- **`CURLOPT_FOLLOWLOCATION=false` 防 SSRF**

### 模块管理

`framework\module\ModuleManager`

- 创建/删除/启用/禁用模块
- 模块目录结构自动生成
- **`validateName()` 防路径遍历**

---

## 二十一、其他组件

### 21.1 分页

`framework\pagination\Paginator` — 支持:

- 页码参数安全校验(`perPage` 限制 1-100)
- 简洁分页 / 完整分页
- API 分页 JSON 响应

### 21.2 通知

`framework\notify`

| 组件 | 说明 |
|------|------|
| `Notify` | 通知发送,支持批量(每收件人独立主题) |
| `VerifyCode` | 验证码发送/验证,尝试次数限制,自动过期 |

### 21.3 API 资源

`framework\api\JsonResource` — RESTful API 响应格式化:

- 数据转换与字段筛选
- 分页元数据
- CRLF 过滤(`strtok`)

### 21.4 PDF 生成

`framework\pdf\Pdf` — 支持:

- HTML 转 PDF
- wkhtmltopdf 外部工具 / 内置 TcpdfGenerator 双引擎
- 页面尺寸/方向/边距配置
- **保存路径白名单**(仅允许 runtime / uploads 目录)

### 21.5 Excel 处理

`framework\excel\Excel` — Excel 文件读写

### 21.6 API 文档生成

`framework\apidoc\ApiDocGenerator` — 自动生成 API 文档:

- 扫描控制器注释(`@api` / `@apiParam` / `@apiSuccess`)
- 生成单页 HTML 文档
- **XSS 防护**(`escapeHtml()` JavaScript 函数 + `JSON_HEX_TAG`)

### 21.7 性能监控

`framework\monitor\PerformanceMonitor` — 运行时性能数据采集

### 21.8 国际化

`framework\core\Lang` — 多语言支持:

- 语言包文件(`lang/zh-cn/common.php` / `lang/en/common.php`)
- 自动语言检测
- 回退语言

### 21.9 事件系统

`framework\core\Event` — 观察者模式:

- 事件监听注册
- 字符串类名 / 闭包 / `__invoke` 支持
- 事件优先级
- **无 `handle` 方法的类名监听器安全跳过**

### 21.10 服务提供者

`framework\core\ServiceProvider` — 服务注册与延迟加载

### 21.11 门面模式

`framework\core\Facade` — 静态代理,简化组件调用:

```php
Cache::store()->get('key');
Db::name('user')->where('id', 1)->find();
Log::info('message');
Config::get('app.name');
```

---

## 二十二、异常体系

`framework\exception` — 细粒度异常分类:

| 异常类 | 说明 |
|--------|------|
| `AuthException` | 认证异常(401) |
| `ForbiddenException` | 授权异常(403) |
| `ValidationException` | 验证异常(422) |
| `CsrfException` | CSRF 验证失败(419) |
| `ThrottleException` | 限流异常(429) |
| `DatabaseConnectionException` | 数据库连接异常 |
| `FileUploadException` | 文件上传异常 |
| `ModelNotFoundException` | 模型未找到 |
| `SecurityException` | 安全异常 |
| `BusinessException` | 业务逻辑异常 |

全局异常处理器 `framework\core\ExceptionHandler` 统一捕获与响应。

---

## 二十三、辅助函数

`framework\helpers.php` — 全局便捷函数:

| 函数 | 说明 |
|------|------|
| `env($key, $default)` | 获取环境变量 |
| `config($key, $default)` | 获取配置值 |
| `cache($key, $default)` | 缓存快捷操作 |
| `session($key, $value)` | Session 快捷操作 |
| `redirect($url)` | HTTP 重定向(防 `//` 协议相对 URL) |
| `json($data, $code)` | JSON 响应 |
| `root_path($path)` | 项目根目录 |
| `app_path($path)` | 应用目录 |
| `runtime_path($path)` | 运行时目录 |
| `public_path($path)` | 公共目录 |
| `database_path($path)` | 数据库目录 |
| `format_bytes($bytes)` | 字节格式化 |

---

## 二十四、安装向导

`app\install` — 可视化安装:

1. **环境检测** — PHP 版本、扩展、目录权限
2. **数据库配置** — 主机/端口/数据库名/用户名/密码(正则校验,反引号转义)
3. **执行安装** — SQL 文件导入(事务包裹)、管理员创建、配置文件写入
4. **安全加固** — 生成 `install.lock`、创建 `.htaccess` 禁止访问安装目录、生成 `.env.example`

---

## 二十五、环境变量

`.env` 文件支持,关键配置项:

```env
APP_ENV=production
APP_DEBUG=false
APP_KEY=your-32-char-secret-key

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lingdu
DB_USERNAME=root
DB_PASSWORD=
DB_PREFIX=ld_

CACHE_DRIVER=redis
QUEUE_DRIVER=database

MAIL_DRIVER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=465
MAIL_ENCRYPTION=ssl

SMS_DRIVER=aliyun
```

所有敏感配置均通过 `env()` 函数读取,支持默认值。

---

## 二十六、内置应用模块

| 模块 | 入口 | 说明 |
|------|------|------|
| 后台管理 | `admin.php` | 管理员登录、RBAC 权限、系统配置、附件管理 |
| 用户中心 | `user.php` | 用户注册/登录、个人资料、密码修改、邮箱/手机绑定 |
| API 接口 | `api.php` | RESTful API,Token 认证,限流,CORS |
| 前台首页 | `index.php` | 前台展示 |
| 安装向导 | `install.php` | 系统安装 |

### RBAC 权限管理

- 管理员分组(`auth_group`)
- 权限规则树(`auth_rule`)
- 超级管理员(`is_super`)跳过权限检查
- 规则支持 `*` 通配符(全部权限)

---

## 二十七、技术亮点总结

| 维度 | 亮点 |
|------|------|
| 安全 | CSRF / XSS / SQL注入 / 路径遍历 / 主机头注入 / 时序攻击 / 重放攻击 / SSRF 全链路防护 |
| 性能 | 路由缓存 / 配置缓存 / OPcache 友好 / 连接池 / 原子操作 |
| 可靠性 | 熔断器 / 限流 / 队列重试 / 事务保护 / 健康检查 |
| 可观测 | 链路追踪 / 性能监控 / 结构化日志(RFC 5424 全8级别) |
| 扩展性 | 插件体系 / 模块体系 / 多驱动架构 / 服务提供者 / 事件系统 |
| 开发体验 | Scaffold 脚手架 / API 文档自动生成 / 命令行工具 / 安装向导 |
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐