mirror of
https://devops.lemonos.cn/lawson/FendxPHP.git
synced 2026-06-15 23:12:49 +08:00
- 创建用户表(users)包含基本信息和认证字段 - 创建角色表(roles)用于权限控制 - 创建权限表(permissions)定义系统权限 - 创建用户角色关联表(user_roles)建立用户与角色关系 - 创建角色权限关联表(role_permissions)建立角色与权限关系 - 创建迁移记录表(migrations)追踪数据库变更 - 添加AdminController提供管理员面板功能 - 实现系统监控、配置管理、缓存清理等功能 - 添加AOP切面编程支持的各种通知类型 - 实现告警管理AlertManager支持多渠道告警 - 添加文档注解接口规范
15 KiB
15 KiB
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 (可选)
安装步骤
- 克隆项目
git clone https://github.com/your-org/fendx-php.git
cd fendx-php
- 安装依赖
composer install
- 配置环境
cp .env.example .env
# 编辑 .env 文件配置数据库等信息
- 数据库迁移
php fendx migrate:run
- 启动服务
php fendx serve
Docker部署
- 使用Docker Compose
docker-compose up -d
- 访问应用
- 应用地址: http://localhost:8080
- 管理面板: http://localhost:8080/admin
📖 使用指南
性能监控
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";
健康检查
use Fendx\Service\Health\HealthChecker;
$checker = HealthChecker::create();
$health = $checker->checkAll();
if ($health['status'] === 'healthy') {
echo "系统运行正常\n";
} else {
echo "系统存在问题: " . $health['issues'][0]['message'] . "\n";
}
错误追踪
use Fendx\Service\Error\ErrorTracker;
$tracker = ErrorTracker::create();
$tracker->trackException($exception);
$report = $tracker->generateReport();
echo "错误总数: " . $report['total_errors'] . "\n";
日志分析
use Fendx\Service\Log\LogAnalyzer;
$analyzer = LogAnalyzer::create();
$analysis = $analyzer->analyzeLogs('/path/to/logs');
echo "日志条目: " . $analysis['total_entries'] . "\n";
echo "错误数量: " . $analysis['error_count'] . "\n";
安全检查
use Fendx\Service\Security\VulnerabilityScanner;
$scanner = VulnerabilityScanner::forProduction();
$report = $scanner->performComprehensiveScan('/path/to/project');
echo "安全评分: " . $report['security_score'] . "\n";
echo "漏洞数量: " . $report['total_vulnerabilities'] . "\n";
测试覆盖率
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)
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)
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
🧪 测试
运行测试
# 运行所有测试
php fendx test
# 运行单元测试
php fendx test --type=unit
# 运行集成测试
php fendx test --type=integration
# 运行API测试
php fendx test --type=api
# 生成覆盖率报告
php fendx test --coverage
测试配置
// 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
监控优化
- 监控关键指标
- 设置性能阈值
- 分析性能瓶颈
- 持续优化改进
🌍 国际化
多语言支持
// 语言包目录
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']);
时区处理
use Fendx\Service\I18n\TimezoneManager;
$manager = TimezoneManager::create();
$manager->setTimezone('Asia/Shanghai');
$converted = $manager->convert($datetime, 'America/New_York');
🔄 微服务架构
服务注册
use Fendx\Service\ServiceRegistry\ServiceRegistry;
$registry = ServiceRegistry::create();
$registry->register('user-service', 'http://localhost:8001', [
'health_check' => '/health',
'metadata' => ['version' => '1.0.0']
]);
负载均衡
use Fendx\Service\LoadBalancer\LoadBalancer;
$balancer = LoadBalancer::create();
$balancer->addServer('http://localhost:8001');
$balancer->addServer('http://localhost:8002');
$server = $balancer->selectServer();
熔断器
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文档
自动生成文档
use Fendx\Service\Documentation\ApiDocumentationGenerator;
$generator = ApiDocumentationGenerator::create();
$generator->generate('/path/to/controllers', '/path/to/output');
OpenAPI规范
框架支持自动生成OpenAPI 3.0规范文档,包含:
- API端点定义
- 请求/响应模式
- 认证方式
- 错误响应
🛠️ 开发工具
代码生成器
# 生成控制器
php fendx generate:controller UserController
# 生成模型
php fendx generate:model User
# 生成服务类
php fendx generate:service UserService
# 生成测试用例
php fendx generate:test UserControllerTest
数据库迁移
# 创建迁移
php fendx migrate:create create_users_table
# 运行迁移
php fendx migrate:run
# 回滚迁移
php fendx migrate:rollback
# 查看迁移状态
php fendx migrate:status
📋 贡献指南
开发环境设置
- Fork项目到你的GitHub账户
- 克隆你的fork到本地
- 创建功能分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推送分支:
git push origin feature/amazing-feature - 创建Pull Request
代码规范
- 遵循PSR-12编码规范
- 编写单元测试
- 添加文档注释
- 确保测试覆盖率不低于80%
提交规范
feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试相关
chore: 构建过程或辅助工具的变动
📄 许可证
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。
🤝 支持
文档
社区
商业支持
- 企业版支持
- 定制开发服务
- 技术咨询服务
- 培训服务
🗺️ 路线图
v2.0.0 (计划中)
- GraphQL支持
- 微服务网格
- 事件驱动架构
- 机器学习集成
v1.5.0 (开发中)
- 更多缓存驱动
- 消息队列集成
- 分布式事务
- 性能优化
v1.2.0 (当前版本)
- 完整的监控体系
- 安全漏洞扫描
- 测试覆盖率分析
- 国际化支持
📊 项目统计
- 代码行数: 50,000+
- 测试覆盖率: 85%+
- 支持的PHP版本: 8.0, 8.1, 8.2
- 支持的数据库: MySQL, PostgreSQL, SQLite
- 支持的缓存: Redis, Memcached, APCu
- 文档完整性: 95%+
FendxPHP Framework - 让PHP开发更简单、更高效、更安全!
如果这个项目对你有帮助,请给我们一个 ⭐️