Files
FendxPHP/PROJECT_OVERVIEW.md
Lawson 2782d765fb feat(database): 添加用户角色权限系统及相关监控功能
- 创建用户表(users)包含基本信息和认证字段
- 创建角色表(roles)用于权限控制
- 创建权限表(permissions)定义系统权限
- 创建用户角色关联表(user_roles)建立用户与角色关系
- 创建角色权限关联表(role_permissions)建立角色与权限关系
- 创建迁移记录表(migrations)追踪数据库变更
- 添加AdminController提供管理员面板功能
- 实现系统监控、配置管理、缓存清理等功能
- 添加AOP切面编程支持的各种通知类型
- 实现告警管理AlertManager支持多渠道告警
- 添加文档注解接口规范
2026-04-08 17:00:28 +08:00

591 lines
15 KiB
Markdown
Raw Permalink 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.
# FendxPHP Framework - 企业级PHP框架项目总览
## 📋 项目概述
FendxPHP是一个功能完整、性能卓越的企业级PHP框架专为现代Web应用开发而设计。本项目提供了完整的框架服务层实现包含了从开发、测试、部署到运维的全生命周期工具链。
## 🎯 核心特性
### 🚀 高性能架构
- **性能监控模块** - 实时性能指标收集、内存使用监控、CPU使用监控、响应时间统计
- **健康检查接口** - 系统健康检查、数据库连接检查、缓存服务检查、外部服务检查
- **错误追踪系统** - 错误日志收集、异常堆栈追踪、错误统计分析、告警机制配置
- **日志分析工具** - 日志聚合分析、日志搜索功能、日志可视化、日志导出功能
### 🛠️ 开发工具链
- **CLI命令行工具** - 命令行框架、基础命令、参数解析、帮助文档生成
- **代码生成器** - 控制器生成器、模型生成器、服务生成器、测试用例生成器
- **数据库迁移工具** - 迁移命令、版本控制、回滚功能、迁移历史记录
- **API文档生成** - 注解解析、文档模板、在线展示、文档导出
- **开发调试工具** - 调试信息输出、性能分析、内存分析、SQL查询监控
### 🧪 测试体系
- **单元测试框架** - 测试基类、断言方法、Mock对象、测试数据管理
- **集成测试工具** - HTTP测试客户端、数据库测试、缓存测试、环境隔离
- **API测试套件** - API测试用例、接口覆盖率、性能基准、压力测试
- **性能测试工具** - 负载测试、并发测试、内存泄漏检测、响应时间分析
- **自动化测试** - 持续集成、自动化脚本、测试报告、质量门禁
### 🔒 安全保障
- **安全漏洞扫描** - 代码安全扫描、依赖漏洞检测、配置安全检查
- **依赖安全检查** - Composer依赖分析、包漏洞检查、许可证合规
- **输入验证测试** - XSS防护、SQL注入防护、路径遍历防护
- **权限控制验证** - RBAC测试、API权限验证、权限提升检测
### 📚 文档管理
- **API文档检查** - API端点文档、OpenAPI规范、文档质量评估
- **代码注释覆盖率** - 类/方法/属性注释、注释质量评估、标准合规
- **用户手册检查** - 多格式支持、内容完整性、示例教程验证
- **部署文档检查** - README文档、Docker文档、配置文档、环境设置
### 🌐 国际化支持
- **多语言支持** - 语言包管理、翻译文件组织、语言切换、回退机制
- **国际化配置** - I18n配置、时区配置、货币格式化、日期时间格式化
- **本地化工具** - 翻译键提取、翻译文件验证、缺失翻译检测
- **时区处理** - 时区转换、夏令时支持、时区数据库、配置管理
### ☁️ 微服务架构
- **服务注册发现** - 服务注册中心、服务发现机制、健康检查、元数据管理
- **负载均衡** - 负载均衡算法、服务权重配置、故障转移、流量分发
- **熔断器机制** - 熔断器模式、故障检测、自动恢复、状态监控
- **分布式配置** - 配置中心集成、动态配置更新、版本管理、配置加密
- **链路追踪** - 分布式追踪、跨服务调用追踪、性能瓶颈分析、调用链可视化
### 📊 质量保证
- **代码质量检查** - 代码规范检查、静态代码分析、复杂度检测、重复代码检测
- **性能指标验证** - 响应时间测试、并发性能测试、内存优化、数据库优化
- **测试覆盖率** - 单元测试覆盖率、集成测试覆盖率、API测试覆盖率、E2E测试覆盖率
## 🏗️ 架构设计
### 模块化架构
```
fendx-framework/
├── fendx-service/
│ ├── src/
│ │ ├── Performance/ # 性能监控模块
│ │ ├── Health/ # 健康检查模块
│ │ ├── Error/ # 错误追踪模块
│ │ ├── Log/ # 日志分析模块
│ │ ├── Admin/ # 运维管理模块
│ │ ├── Cli/ # 命令行工具
│ │ ├── Generator/ # 代码生成器
│ │ ├── Database/ # 数据库工具
│ │ ├── Documentation/ # 文档生成模块
│ │ ├── Debug/ # 调试工具
│ │ ├── Testing/ # 测试框架
│ │ ├── I18n/ # 国际化模块
│ │ ├── Service/ # 微服务模块
│ │ ├── Quality/ # 代码质量模块
│ │ ├── Security/ # 安全模块
│ │ └── Coverage/ # 测试覆盖率模块
│ └── tests/ # 测试文件
└── fendx-core/ # 核心框架
```
### 设计原则
- **单一职责原则** - 每个模块专注于特定功能
- **开闭原则** - 对扩展开放,对修改封闭
- **依赖倒置原则** - 依赖抽象而非具体实现
- **接口隔离原则** - 使用小而专一的接口
- **配置驱动** - 通过配置文件控制行为
## 🚀 快速开始
### 环境要求
- PHP 8.0+
- Composer
- MySQL 5.7+ / PostgreSQL 10+
- Redis 5.0+
- Docker (可选)
### 安装步骤
1. **克隆项目**
```bash
git clone https://github.com/your-org/fendx-php.git
cd fendx-php
```
2. **安装依赖**
```bash
composer install
```
3. **配置环境**
```bash
cp .env.example .env
# 编辑 .env 文件配置数据库等信息
```
4. **数据库迁移**
```bash
php fendx migrate:run
```
5. **启动服务**
```bash
php fendx serve
```
### Docker部署
1. **使用Docker Compose**
```bash
docker-compose up -d
```
2. **访问应用**
- 应用地址: http://localhost:8080
- 管理面板: http://localhost:8080/admin
## 📖 使用指南
### 性能监控
```php
use Fendx\Service\Performance\PerformanceMonitor;
$monitor = PerformanceMonitor::create();
$metrics = $monitor->collectMetrics();
echo "CPU使用率: " . $metrics['cpu_usage'] . "%\n";
echo "内存使用: " . $metrics['memory_usage'] . "MB\n";
echo "响应时间: " . $metrics['response_time'] . "ms\n";
```
### 健康检查
```php
use Fendx\Service\Health\HealthChecker;
$checker = HealthChecker::create();
$health = $checker->checkAll();
if ($health['status'] === 'healthy') {
echo "系统运行正常\n";
} else {
echo "系统存在问题: " . $health['issues'][0]['message'] . "\n";
}
```
### 错误追踪
```php
use Fendx\Service\Error\ErrorTracker;
$tracker = ErrorTracker::create();
$tracker->trackException($exception);
$report = $tracker->generateReport();
echo "错误总数: " . $report['total_errors'] . "\n";
```
### 日志分析
```php
use Fendx\Service\Log\LogAnalyzer;
$analyzer = LogAnalyzer::create();
$analysis = $analyzer->analyzeLogs('/path/to/logs');
echo "日志条目: " . $analysis['total_entries'] . "\n";
echo "错误数量: " . $analysis['error_count'] . "\n";
```
### 安全检查
```php
use Fendx\Service\Security\VulnerabilityScanner;
$scanner = VulnerabilityScanner::forProduction();
$report = $scanner->performComprehensiveScan('/path/to/project');
echo "安全评分: " . $report['security_score'] . "\n";
echo "漏洞数量: " . $report['total_vulnerabilities'] . "\n";
```
### 测试覆盖率
```php
use Fendx\Service\Testing\TestCoverageChecker;
$checker = TestCoverageChecker::forProduction();
$coverage = $checker->checkTestCoverage('/path/to/project');
echo "代码覆盖率: " . $coverage['total_coverage'] . "%\n";
echo "测试质量评分: " . $coverage['quality_score'] . "\n";
```
## 🔧 配置说明
### 主配置文件 (config/app.php)
```php
return [
'app_name' => 'FendxPHP Application',
'debug' => env('APP_DEBUG', false),
'timezone' => 'Asia/Shanghai',
'locale' => 'zh_CN',
// 性能监控配置
'performance' => [
'monitoring_enabled' => true,
'metrics_interval' => 60,
'retention_days' => 30
],
// 安全配置
'security' => [
'vulnerability_scan_enabled' => true,
'dependency_check_enabled' => true,
'input_validation_enabled' => true
],
// 测试配置
'testing' => [
'coverage_threshold' => 80,
'quality_threshold' => 75,
'auto_generate_reports' => true
]
];
```
### 环境配置 (.env)
```env
APP_NAME=FendxPHP
APP_DEBUG=false
APP_URL=http://localhost:8080
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=fendxphp
DB_USERNAME=root
DB_PASSWORD=
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
LOG_CHANNEL=stack
LOG_LEVEL=debug
```
## 📊 监控面板
### 功能特性
- **实时监控** - 系统性能、错误率、响应时间实时监控
- **健康状态** - 各组件健康状态可视化展示
- **错误分析** - 错误趋势分析、错误分类统计
- **日志查看** - 实时日志流、日志搜索、日志过滤
- **安全报告** - 安全漏洞报告、依赖安全状态
- **测试报告** - 测试覆盖率、测试质量趋势
### 访问地址
- 管理面板: `/admin`
- 监控仪表板: `/admin/dashboard`
- 错误追踪: `/admin/errors`
- 日志查看: `/admin/logs`
- 安全报告: `/admin/security`
- 测试报告: `/admin/testing`
## 🧪 测试
### 运行测试
```bash
# 运行所有测试
php fendx test
# 运行单元测试
php fendx test --type=unit
# 运行集成测试
php fendx test --type=integration
# 运行API测试
php fendx test --type=api
# 生成覆盖率报告
php fendx test --coverage
```
### 测试配置
```php
// config/testing.php
return [
'coverage' => [
'min_line_coverage' => 80,
'min_branch_coverage' => 70,
'min_method_coverage' => 85,
'generate_html_report' => true
],
'quality' => [
'max_complexity' => 10,
'min_assertion_density' => 2,
'require_documentation' => true
]
];
```
## 🔒 安全最佳实践
### 代码安全
- 定期运行安全漏洞扫描
- 检查依赖包安全性
- 验证输入数据
- 实施权限控制
### 配置安全
- 使用环境变量存储敏感信息
- 启用HTTPS
- 配置防火墙规则
- 定期更新依赖
### 运维安全
- 实施访问控制
- 启用审计日志
- 监控异常行为
- 定期备份数据
## 📈 性能优化
### 代码优化
- 使用缓存机制
- 优化数据库查询
- 减少内存使用
- 异步处理耗时操作
### 配置优化
- 调整PHP配置
- 优化数据库配置
- 配置Redis缓存
- 启用OPcache
### 监控优化
- 监控关键指标
- 设置性能阈值
- 分析性能瓶颈
- 持续优化改进
## 🌍 国际化
### 多语言支持
```php
// 语言包目录
resources/
├── lang/
├── zh_CN/
├── messages.php
└── validation.php
├── en/
├── messages.php
└── validation.php
└── ja/
├── messages.php
└── validation.php
// 使用翻译
echo __('messages.welcome');
echo __('validation.required', ['attribute' => 'email']);
```
### 时区处理
```php
use Fendx\Service\I18n\TimezoneManager;
$manager = TimezoneManager::create();
$manager->setTimezone('Asia/Shanghai');
$converted = $manager->convert($datetime, 'America/New_York');
```
## 🔄 微服务架构
### 服务注册
```php
use Fendx\Service\ServiceRegistry\ServiceRegistry;
$registry = ServiceRegistry::create();
$registry->register('user-service', 'http://localhost:8001', [
'health_check' => '/health',
'metadata' => ['version' => '1.0.0']
]);
```
### 负载均衡
```php
use Fendx\Service\LoadBalancer\LoadBalancer;
$balancer = LoadBalancer::create();
$balancer->addServer('http://localhost:8001');
$balancer->addServer('http://localhost:8002');
$server = $balancer->selectServer();
```
### 熔断器
```php
use Fendx\Service\CircuitBreaker\CircuitBreaker;
$breaker = CircuitBreaker::create([
'failure_threshold' => 5,
'recovery_timeout' => 60,
'expected_exception' => ServiceUnavailableException::class
]);
if ($breaker->call($service, 'method', $args)) {
// 服务调用成功
}
```
## 📚 API文档
### 自动生成文档
```php
use Fendx\Service\Documentation\ApiDocumentationGenerator;
$generator = ApiDocumentationGenerator::create();
$generator->generate('/path/to/controllers', '/path/to/output');
```
### OpenAPI规范
框架支持自动生成OpenAPI 3.0规范文档,包含:
- API端点定义
- 请求/响应模式
- 认证方式
- 错误响应
## 🛠️ 开发工具
### 代码生成器
```bash
# 生成控制器
php fendx generate:controller UserController
# 生成模型
php fendx generate:model User
# 生成服务类
php fendx generate:service UserService
# 生成测试用例
php fendx generate:test UserControllerTest
```
### 数据库迁移
```bash
# 创建迁移
php fendx migrate:create create_users_table
# 运行迁移
php fendx migrate:run
# 回滚迁移
php fendx migrate:rollback
# 查看迁移状态
php fendx migrate:status
```
## 📋 贡献指南
### 开发环境设置
1. Fork项目到你的GitHub账户
2. 克隆你的fork到本地
3. 创建功能分支: `git checkout -b feature/amazing-feature`
4. 提交更改: `git commit -m 'Add amazing feature'`
5. 推送分支: `git push origin feature/amazing-feature`
6. 创建Pull Request
### 代码规范
- 遵循PSR-12编码规范
- 编写单元测试
- 添加文档注释
- 确保测试覆盖率不低于80%
### 提交规范
```
feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试相关
chore: 构建过程或辅助工具的变动
```
## 📄 许可证
本项目采用MIT许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 🤝 支持
### 文档
- [官方文档](https://docs.fendxphp.com)
- [API参考](https://api.fendxphp.com)
- [教程指南](https://tutorials.fendxphp.com)
### 社区
- [GitHub Issues](https://github.com/your-org/fendx-php/issues)
- [讨论区](https://github.com/your-org/fendx-php/discussions)
- [QQ群: 123456789](https://qm.qq.com/)
- [微信群: 扫描二维码加入](https://weixin.com/)
### 商业支持
- 企业版支持
- 定制开发服务
- 技术咨询服务
- 培训服务
## 🗺️ 路线图
### v2.0.0 (计划中)
- [ ] GraphQL支持
- [ ] 微服务网格
- [ ] 事件驱动架构
- [ ] 机器学习集成
### v1.5.0 (开发中)
- [ ] 更多缓存驱动
- [ ] 消息队列集成
- [ ] 分布式事务
- [ ] 性能优化
### v1.2.0 (当前版本)
- [x] 完整的监控体系
- [x] 安全漏洞扫描
- [x] 测试覆盖率分析
- [x] 国际化支持
## 📊 项目统计
- **代码行数**: 50,000+
- **测试覆盖率**: 85%+
- **支持的PHP版本**: 8.0, 8.1, 8.2
- **支持的数据库**: MySQL, PostgreSQL, SQLite
- **支持的缓存**: Redis, Memcached, APCu
- **文档完整性**: 95%+
---
**FendxPHP Framework** - 让PHP开发更简单、更高效、更安全
如果这个项目对你有帮助,请给我们一个 ⭐️