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

15 KiB
Raw Blame History

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. 克隆项目
git clone https://github.com/your-org/fendx-php.git
cd fendx-php
  1. 安装依赖
composer install
  1. 配置环境
cp .env.example .env
# 编辑 .env 文件配置数据库等信息
  1. 数据库迁移
php fendx migrate:run
  1. 启动服务
php fendx serve

Docker部署

  1. 使用Docker Compose
docker-compose up -d
  1. 访问应用

📖 使用指南

性能监控

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

📋 贡献指南

开发环境设置

  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 文件了解详情。

🤝 支持

文档

社区

商业支持

  • 企业版支持
  • 定制开发服务
  • 技术咨询服务
  • 培训服务

🗺️ 路线图

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开发更简单、更高效、更安全

如果这个项目对你有帮助,请给我们一个