mirror of
https://devops.lemonos.cn/lawson/FendxPHP.git
synced 2026-06-15 23:12:49 +08:00
feat(database): 添加用户角色权限系统及相关监控功能
- 创建用户表(users)包含基本信息和认证字段 - 创建角色表(roles)用于权限控制 - 创建权限表(permissions)定义系统权限 - 创建用户角色关联表(user_roles)建立用户与角色关系 - 创建角色权限关联表(role_permissions)建立角色与权限关系 - 创建迁移记录表(migrations)追踪数据库变更 - 添加AdminController提供管理员面板功能 - 实现系统监控、配置管理、缓存清理等功能 - 添加AOP切面编程支持的各种通知类型 - 实现告警管理AlertManager支持多渠道告警 - 添加文档注解接口规范
This commit is contained in:
590
PROJECT_OVERVIEW.md
Normal file
590
PROJECT_OVERVIEW.md
Normal file
@@ -0,0 +1,590 @@
|
||||
# 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开发更简单、更高效、更安全!
|
||||
|
||||
如果这个项目对你有帮助,请给我们一个 ⭐️
|
||||
Reference in New Issue
Block a user